Merge remote-tracking branch 'upstream/main' into ekubo
This commit is contained in:
2
.github/workflows/evm-foundry-ci.yml
vendored
2
.github/workflows/evm-foundry-ci.yml
vendored
@@ -4,7 +4,7 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
pull_request:
|
pull_request_target:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check:
|
check:
|
||||||
|
|||||||
30
.github/workflows/release.yaml
vendored
Normal file
30
.github/workflows/release.yaml
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs: { }
|
||||||
|
release:
|
||||||
|
types: [ created, prereleased ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
id-token: write
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish-crate:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
override: true
|
||||||
|
- name: Push to crates.io
|
||||||
|
run: |
|
||||||
|
cargo publish --locked --verbose --token ${{ secrets.CRATESIO_REGISTRY_TOKEN }}
|
||||||
|
# we can't use the action because it errors on github dependencies in any workspace crate
|
||||||
|
# - uses: katyo/publish-crates@v2
|
||||||
|
# with:
|
||||||
|
# path: "./tycho-common"
|
||||||
|
# registry-token: ${{ secrets.CRATESIO_REGISTRY_TOKEN }}
|
||||||
|
|
||||||
26
CHANGELOG.md
26
CHANGELOG.md
@@ -1,3 +1,29 @@
|
|||||||
|
## [0.68.2](https://github.com/propeller-heads/tycho-execution/compare/0.68.1...0.68.2) (2025-03-28)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* fix for foundry tests external contributors ([a9ddb0e](https://github.com/propeller-heads/tycho-execution/commit/a9ddb0e6e9ef546f6e851c3056df5a55ee4dfa76))
|
||||||
|
|
||||||
|
## [0.68.1](https://github.com/propeller-heads/tycho-execution/compare/0.68.0...0.68.1) (2025-03-27)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* Add crate metadata ([7e7fabf](https://github.com/propeller-heads/tycho-execution/commit/7e7fabf51bff842ab20c2f512e4f3a609a266e79))
|
||||||
|
|
||||||
|
## [0.68.0](https://github.com/propeller-heads/tycho-execution/compare/0.67.2...0.68.0) (2025-03-27)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* switch to tycho_commons ([0836bf7](https://github.com/propeller-heads/tycho-execution/commit/0836bf7d530f18a6c0f112542bcad16050e88afa))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* Handle unichain chain id ([379858b](https://github.com/propeller-heads/tycho-execution/commit/379858bfca27eb5e8180a32351337779e625e0b5))
|
||||||
|
|
||||||
## [0.67.2](https://github.com/propeller-heads/tycho-execution/compare/0.67.1...0.67.2) (2025-03-27)
|
## [0.67.2](https://github.com/propeller-heads/tycho-execution/compare/0.67.1...0.67.2) (2025-03-27)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
11
Cargo.lock
generated
11
Cargo.lock
generated
@@ -4316,9 +4316,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tycho-core"
|
name = "tycho-common"
|
||||||
version = "0.61.1"
|
version = "0.63.1"
|
||||||
source = "git+https://github.com/propeller-heads/tycho-indexer.git?tag=0.61.1#aae2c11bffe9ae5e436adc019b769438fa038272"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "57c64749b24bdb5de6050c37ea91420a67a5fe606247fdb29f2e812dac30b42e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@@ -4340,7 +4341,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tycho-execution"
|
name = "tycho-execution"
|
||||||
version = "0.67.2"
|
version = "0.68.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloy",
|
"alloy",
|
||||||
"alloy-primitives",
|
"alloy-primitives",
|
||||||
@@ -4358,7 +4359,7 @@ dependencies = [
|
|||||||
"serde_json",
|
"serde_json",
|
||||||
"thiserror 1.0.69",
|
"thiserror 1.0.69",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tycho-core",
|
"tycho-common",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
12
Cargo.toml
12
Cargo.toml
@@ -1,7 +1,15 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "tycho-execution"
|
name = "tycho-execution"
|
||||||
version = "0.67.2"
|
version = "0.68.2"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
description = "Provides tools for encoding and executing swaps against Tycho router and protocol executors."
|
||||||
|
repository = "https://github.com/propeller-heads/tycho-execution"
|
||||||
|
homepage = "https://www.propellerheads.xyz/tycho"
|
||||||
|
documentation = "https://docs.propellerheads.xyz/tycho"
|
||||||
|
keywords = ["propellerheads", "solver", "defi", "dex", "mev"]
|
||||||
|
license = "MIT"
|
||||||
|
categories = ["finance", "cryptography::cryptocurrencies"]
|
||||||
|
readme = "README.md"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "tycho-encode"
|
name = "tycho-encode"
|
||||||
@@ -24,7 +32,7 @@ clap = { version = "4.5.3", features = ["derive"] }
|
|||||||
alloy = { version = "0.9.2", features = ["providers", "rpc-types-eth", "eip712", "signer-local"], optional = true }
|
alloy = { version = "0.9.2", features = ["providers", "rpc-types-eth", "eip712", "signer-local"], optional = true }
|
||||||
alloy-sol-types = { version = "0.8.14", optional = true }
|
alloy-sol-types = { version = "0.8.14", optional = true }
|
||||||
alloy-primitives = { version = "0.8.9", optional = true }
|
alloy-primitives = { version = "0.8.9", optional = true }
|
||||||
tycho-core = { git = "https://github.com/propeller-heads/tycho-indexer.git", package = "tycho-core", tag = "0.61.1" }
|
tycho-common = "0.63.1"
|
||||||
once_cell = "1.20.2"
|
once_cell = "1.20.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use num_bigint::BigUint;
|
use num_bigint::BigUint;
|
||||||
use tycho_core::{
|
use tycho_common::{
|
||||||
models::{protocol::ProtocolComponent, Chain},
|
models::{protocol::ProtocolComponent, Chain},
|
||||||
Bytes,
|
Bytes,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use std::io::{self, Read};
|
use std::io::{self, Read};
|
||||||
|
|
||||||
use clap::{Parser, Subcommand};
|
use clap::{Parser, Subcommand};
|
||||||
use tycho_core::models::Chain;
|
use tycho_common::models::Chain;
|
||||||
use tycho_execution::encoding::{
|
use tycho_execution::encoding::{
|
||||||
evm::encoder_builder::EVMEncoderBuilder, models::Solution, tycho_encoder::TychoEncoder,
|
evm::encoder_builder::EVMEncoderBuilder, models::Solution, tycho_encoder::TychoEncoder,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ use tokio::{
|
|||||||
runtime::{Handle, Runtime},
|
runtime::{Handle, Runtime},
|
||||||
task::block_in_place,
|
task::block_in_place,
|
||||||
};
|
};
|
||||||
use tycho_core::Bytes;
|
use tycho_common::Bytes;
|
||||||
|
|
||||||
use crate::encoding::{
|
use crate::encoding::{
|
||||||
errors::EncodingError,
|
errors::EncodingError,
|
||||||
@@ -175,7 +175,7 @@ mod tests {
|
|||||||
|
|
||||||
use alloy_primitives::Uint;
|
use alloy_primitives::Uint;
|
||||||
use num_bigint::BigUint;
|
use num_bigint::BigUint;
|
||||||
use tycho_core::models::Chain as TychoCoreChain;
|
use tycho_common::models::Chain as TychoCoreChain;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use tycho_core::models::Chain;
|
use tycho_common::models::Chain;
|
||||||
|
|
||||||
use crate::encoding::{
|
use crate::encoding::{
|
||||||
errors::EncodingError,
|
errors::EncodingError,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use tycho_core::Bytes;
|
use tycho_common::Bytes;
|
||||||
|
|
||||||
use crate::encoding::{evm::constants::GROUPABLE_PROTOCOLS, models::Swap};
|
use crate::encoding::{evm::constants::GROUPABLE_PROTOCOLS, models::Swap};
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ mod tests {
|
|||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use alloy_primitives::hex;
|
use alloy_primitives::hex;
|
||||||
use tycho_core::{models::protocol::ProtocolComponent, Bytes};
|
use tycho_common::{models::protocol::ProtocolComponent, Bytes};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::encoding::models::Swap;
|
use crate::encoding::models::Swap;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ use std::{collections::HashSet, str::FromStr};
|
|||||||
|
|
||||||
use alloy_primitives::{aliases::U24, U256, U8};
|
use alloy_primitives::{aliases::U24, U256, U8};
|
||||||
use alloy_sol_types::SolValue;
|
use alloy_sol_types::SolValue;
|
||||||
use tycho_core::Bytes;
|
use tycho_common::Bytes;
|
||||||
|
|
||||||
use crate::encoding::{
|
use crate::encoding::{
|
||||||
errors::EncodingError,
|
errors::EncodingError,
|
||||||
@@ -80,7 +80,7 @@ pub struct SplitSwapStrategyEncoder {
|
|||||||
|
|
||||||
impl SplitSwapStrategyEncoder {
|
impl SplitSwapStrategyEncoder {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
blockchain: tycho_core::models::Chain,
|
blockchain: tycho_common::models::Chain,
|
||||||
swap_encoder_registry: SwapEncoderRegistry,
|
swap_encoder_registry: SwapEncoderRegistry,
|
||||||
swapper_pk: Option<String>,
|
swapper_pk: Option<String>,
|
||||||
) -> Result<Self, EncodingError> {
|
) -> Result<Self, EncodingError> {
|
||||||
@@ -341,7 +341,7 @@ mod tests {
|
|||||||
use alloy_primitives::hex;
|
use alloy_primitives::hex;
|
||||||
use num_bigint::{BigInt, BigUint};
|
use num_bigint::{BigInt, BigUint};
|
||||||
use rstest::rstest;
|
use rstest::rstest;
|
||||||
use tycho_core::{
|
use tycho_common::{
|
||||||
models::{protocol::ProtocolComponent, Chain as TychoCoreChain},
|
models::{protocol::ProtocolComponent, Chain as TychoCoreChain},
|
||||||
Bytes,
|
Bytes,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use std::collections::{HashMap, HashSet, VecDeque};
|
use std::collections::{HashMap, HashSet, VecDeque};
|
||||||
|
|
||||||
use tycho_core::Bytes;
|
use tycho_common::Bytes;
|
||||||
|
|
||||||
use crate::encoding::{
|
use crate::encoding::{
|
||||||
errors::EncodingError,
|
errors::EncodingError,
|
||||||
@@ -203,7 +203,7 @@ mod tests {
|
|||||||
|
|
||||||
use num_bigint::BigUint;
|
use num_bigint::BigUint;
|
||||||
use rstest::rstest;
|
use rstest::rstest;
|
||||||
use tycho_core::{models::protocol::ProtocolComponent, Bytes};
|
use tycho_common::{models::protocol::ProtocolComponent, Bytes};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::encoding::models::Swap;
|
use crate::encoding::models::Swap;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ impl SwapEncoderRegistry {
|
|||||||
/// executors' addresses in the file at the given path.
|
/// executors' addresses in the file at the given path.
|
||||||
pub fn new(
|
pub fn new(
|
||||||
executors_file_path: Option<String>,
|
executors_file_path: Option<String>,
|
||||||
blockchain: tycho_core::models::Chain,
|
blockchain: tycho_common::models::Chain,
|
||||||
) -> Result<Self, EncodingError> {
|
) -> Result<Self, EncodingError> {
|
||||||
let chain = Chain::from(blockchain);
|
let chain = Chain::from(blockchain);
|
||||||
let config_str = if let Some(ref path) = executors_file_path {
|
let config_str = if let Some(ref path) = executors_file_path {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ use std::str::FromStr;
|
|||||||
|
|
||||||
use alloy_primitives::{Address, Bytes as AlloyBytes};
|
use alloy_primitives::{Address, Bytes as AlloyBytes};
|
||||||
use alloy_sol_types::SolValue;
|
use alloy_sol_types::SolValue;
|
||||||
use tycho_core::Bytes;
|
use tycho_common::Bytes;
|
||||||
|
|
||||||
use crate::encoding::{
|
use crate::encoding::{
|
||||||
errors::EncodingError,
|
errors::EncodingError,
|
||||||
@@ -328,7 +328,7 @@ mod tests {
|
|||||||
|
|
||||||
use alloy::hex::encode;
|
use alloy::hex::encode;
|
||||||
use num_bigint::BigInt;
|
use num_bigint::BigInt;
|
||||||
use tycho_core::{models::protocol::ProtocolComponent, Bytes};
|
use tycho_common::{models::protocol::ProtocolComponent, Bytes};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
|
||||||
use num_bigint::BigUint;
|
use num_bigint::BigUint;
|
||||||
use tycho_core::Bytes;
|
use tycho_common::Bytes;
|
||||||
|
|
||||||
use crate::encoding::{
|
use crate::encoding::{
|
||||||
errors::EncodingError,
|
errors::EncodingError,
|
||||||
@@ -34,7 +34,7 @@ impl Clone for EVMTychoEncoder {
|
|||||||
|
|
||||||
impl EVMTychoEncoder {
|
impl EVMTychoEncoder {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
chain: tycho_core::models::Chain,
|
chain: tycho_common::models::Chain,
|
||||||
strategy_encoder: Box<dyn StrategyEncoder>,
|
strategy_encoder: Box<dyn StrategyEncoder>,
|
||||||
) -> Result<Self, EncodingError> {
|
) -> Result<Self, EncodingError> {
|
||||||
let chain: Chain = Chain::from(chain);
|
let chain: Chain = Chain::from(chain);
|
||||||
@@ -177,7 +177,7 @@ impl TychoEncoder for EVMTychoEncoder {
|
|||||||
mod tests {
|
mod tests {
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use tycho_core::models::{protocol::ProtocolComponent, Chain as TychoCoreChain};
|
use tycho_common::models::{protocol::ProtocolComponent, Chain as TychoCoreChain};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::encoding::{
|
use crate::encoding::{
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ use std::{cmp::max, sync::Arc};
|
|||||||
use alloy_primitives::{aliases::U24, keccak256, Address, FixedBytes, Keccak256, U256, U8};
|
use alloy_primitives::{aliases::U24, keccak256, Address, FixedBytes, Keccak256, U256, U8};
|
||||||
use num_bigint::BigUint;
|
use num_bigint::BigUint;
|
||||||
use tokio::runtime::{Handle, Runtime};
|
use tokio::runtime::{Handle, Runtime};
|
||||||
use tycho_core::Bytes;
|
use tycho_common::Bytes;
|
||||||
|
|
||||||
use crate::encoding::{
|
use crate::encoding::{
|
||||||
errors::EncodingError,
|
errors::EncodingError,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use hex;
|
use hex;
|
||||||
use num_bigint::BigUint;
|
use num_bigint::BigUint;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use tycho_core::{
|
use tycho_common::{
|
||||||
models::{protocol::ProtocolComponent, Chain as TychoCoreChain},
|
models::{protocol::ProtocolComponent, Chain as TychoCoreChain},
|
||||||
Bytes,
|
Bytes,
|
||||||
};
|
};
|
||||||
@@ -130,6 +130,7 @@ impl From<TychoCoreChain> for Chain {
|
|||||||
TychoCoreChain::Arbitrum => Chain { id: 42161, name: chain.to_string() },
|
TychoCoreChain::Arbitrum => Chain { id: 42161, name: chain.to_string() },
|
||||||
TychoCoreChain::Starknet => Chain { id: 0, name: chain.to_string() },
|
TychoCoreChain::Starknet => Chain { id: 0, name: chain.to_string() },
|
||||||
TychoCoreChain::Base => Chain { id: 8453, name: chain.to_string() },
|
TychoCoreChain::Base => Chain { id: 8453, name: chain.to_string() },
|
||||||
|
TychoCoreChain::Unichain => Chain { id: 130, name: chain.to_string() },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use tycho_core::Bytes;
|
use tycho_common::Bytes;
|
||||||
|
|
||||||
use crate::encoding::{errors::EncodingError, models::Solution, swap_encoder::SwapEncoder};
|
use crate::encoding::{errors::EncodingError, models::Solution, swap_encoder::SwapEncoder};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user