[workspace] resolver = "2" # NOTE: All paths must be listed out (i.e. no globs) since ifd is still broken in nix (still can't import the output of `cargo metadata` :( ). See crane.nix for where this is used. members = [ "cosmwasm/token-factory-api", "cosmwasm/ucs00-pingpong", "cosmwasm/ibc-union/app/ucs00-pingpong", "cosmwasm/ibc-union/app/ucs03-zkgm", "cosmwasm/ibc-union/app/ucs06-funded-dispatch", "cosmwasm/multicall", "cosmwasm/lst", "cosmwasm/ibc-union/core", "cosmwasm/ibc-union/core/msg", "cosmwasm/ibc-union/core/light-client-interface", "devnet-compose", "e2e/ensure-blocks", "generated/rust/protos", # "generated/rust/aptos-move-ibc", "hubble", "lib/beacon-api", "lib/cometbft-rpc", "lib/cosmos-client", "lib/cometbft-types", "lib/concurrent-keyring", "lib/gnark-key-parser", "lib/gnark-mimc", # "lib/ibc-vm-rs", "cosmwasm/ics08-light-clients/interface", "lib/ics23", "lib/linea-verifier", "lib/linea-zktrie", "lib/macros", "lib/pg-queue", "lib/poseidon-rs", "lib/subset-of-derive", "lib/scroll-api", "lib/scroll-codec", "lib/scroll-rpc", "lib/arbitrum-types", "lib/arbitrum-client", "lib/bob-types", "lib/base-client", "lib/bob-client", "lib/serde-utils", "lib/ssz", "lib/ssz/tests-generator", "lib/ssz-derive", "lib/unionlabs", "lib/unionlabs-primitives", "lib/unionlabs-encoding", "lib/zktrie-rs", "lib/galois-rpc", "lib/cosmos-sdk-event", "lib/frissitheto", "lib/parlia-types", # "lib/near/near-ibc", # "lib/near/near-light-client", # "lib/near/dummy-ibc-app", # "lib/near/near-ibc-tests", "lib/ibc-solidity", "lib/base-verifier", "lib/bob-verifier", "lib/arbitrum-verifier", "lib/cometbls-groth16-verifier", "lib/ethereum-sync-protocol", "lib/ethereum-sync-protocol-types", "lib/evm-storage-verifier", "lib/parlia-verifier", "lib/scroll-verifier", "lib/tendermint-verifier", "lib/base-light-client-types", "lib/bob-light-client-types", "lib/arbitrum-light-client-types", "lib/berachain-light-client-types", "lib/cometbls-light-client-types", "lib/tendermint-light-client-types", "lib/ethereum-light-client-types", "lib/ethermint-light-client-types", "lib/movement-light-client-types", "lib/parlia-light-client-types", "lib/trusted-mpt-light-client-types", "lib/linea-light-client-types", "lib/scroll-light-client-types", "lib/state-lens-ics23-mpt-light-client-types", "lib/state-lens-ics23-ics23-light-client-types", "lib/state-lens-ics23-smt-light-client-types", "lib/sui-light-client-types", "cosmwasm/deployer", "cosmwasm/ibc-union/lightclient/arbitrum", "cosmwasm/ibc-union/lightclient/base", "cosmwasm/ibc-union/lightclient/berachain", "cosmwasm/ibc-union/lightclient/bob", "cosmwasm/ibc-union/lightclient/cometbls", "cosmwasm/ibc-union/lightclient/ethereum", "cosmwasm/ibc-union/lightclient/ethermint", "cosmwasm/ibc-union/lightclient/tendermint", # "cosmwasm/ibc-union/lightclient/movement", "cosmwasm/ibc-union/lightclient/parlia", "cosmwasm/ibc-union/lightclient/trusted-mpt", "cosmwasm/ibc-union/lightclient/state-lens-ics23-mpt", # "cosmwasm/ibc-union/lightclient/state-lens-ics23-smt", "cosmwasm/ibc-union/lightclient/state-lens-ics23-ics23", "cosmwasm/ibc-union/lightclient/sui", # these will all be re enabled and updated once ethereum-light-client is updated # "cosmwasm/ibc-union/lightclient/scroll", # "cosmwasm/ibc-union/lightclient/linea", "tools/devnet-utils", "tools/build-evm-deployer-tx", "tools/parse-wasm-client-type", "tools/tidy", # "tools/move-bindgen", "tools/rustfmt-sort", "lib/move-bindgen-derive", "unionvisor", "voyager", "lib/voyager-message", "lib/voyager-vm", "lib/voyager-rpc", "lib/voyager-core", "lib/voyager-primitives", "voyager/modules/state/cosmos-sdk", "voyager/modules/state/cosmos-sdk-union", "voyager/modules/state/ethereum", # "voyager/modules/state/movement", "voyager/modules/state/sui", "voyager/modules/proof/cosmos-sdk", "voyager/modules/proof/cosmos-sdk-union", "voyager/modules/proof/ethermint", "voyager/modules/proof/ethereum", # "voyager/modules/proof/movement", "voyager/modules/proof/sui", "voyager/modules/client/base", "voyager/modules/client/bob", "voyager/modules/client/arbitrum", "voyager/modules/client/cometbls", "voyager/modules/client/ethereum", # "voyager/modules/client/movement", "voyager/modules/client/parlia", "voyager/modules/client/tendermint", "voyager/modules/client/ethermint", "voyager/modules/client/state-lens/ics23-mpt", "voyager/modules/client/state-lens/ics23-ics23", "voyager/modules/client/state-lens/ics23-smt", "voyager/modules/client/sui", "voyager/modules/client/trusted-mpt", "voyager/modules/client-bootstrap/base", "voyager/modules/client-bootstrap/bob", "voyager/modules/client-bootstrap/arbitrum", "voyager/modules/client-bootstrap/cometbls", "voyager/modules/client-bootstrap/ethereum", # "voyager/modules/client-bootstrap/movement", "voyager/modules/client-bootstrap/parlia", "voyager/modules/client-bootstrap/tendermint", "voyager/modules/client-bootstrap/ethermint", "voyager/modules/client-bootstrap/trusted-mpt", "voyager/modules/client-bootstrap/state-lens/ics23-mpt", "voyager/modules/client-bootstrap/state-lens/ics23-smt", "voyager/modules/client-bootstrap/state-lens/ics23-ics23", "voyager/modules/client-bootstrap/sui", "voyager/modules/finality/base", "voyager/modules/finality/bob", "voyager/modules/finality/arbitrum", "voyager/modules/finality/berachain", "voyager/modules/finality/cometbls", "voyager/modules/finality/ethereum", # "voyager/modules/finality/movement", "voyager/modules/finality/parlia", "voyager/modules/finality/tendermint", "voyager/modules/finality/trusted-evm", "voyager/modules/finality/sui", "voyager/plugins/client-update/base", "voyager/plugins/client-update/bob", "voyager/plugins/client-update/arbitrum", "voyager/plugins/client-update/berachain", "voyager/plugins/client-update/cometbls", "voyager/plugins/client-update/ethereum", # "voyager/plugins/client-update/movement", "voyager/plugins/client-update/parlia", "voyager/plugins/client-update/tendermint", "voyager/plugins/client-update/ethermint", "voyager/plugins/client-update/state-lens", "voyager/plugins/client-update/sui", "voyager/plugins/client-update/trusted-mpt", "voyager/plugins/periodic-client-update", "voyager/plugins/event-source/cosmos-sdk", "voyager/plugins/event-source/ethereum", # "voyager/plugins/event-source/movement", "voyager/plugins/event-source/sui", "voyager/plugins/transaction/cosmos-sdk", "voyager/plugins/transaction/ethereum", # "voyager/plugins/transaction/aptos", "voyager/plugins/transaction/sui", "voyager/plugins/packet-filter", "voyager/plugins/packet-index", "voyager/plugins/packet-batch", "voyager/plugins/transaction-batch", "voyager/plugins/packet-timeout", "voyager/plugins/zkgm-filter", "drip", # "lib/aptos-verifier", "lib/reconnecting-jsonrpc-ws-client", "lib/voyager-primitives", "lib/subset-of", "lib/cometbft-types", "lib/galois-rpc", "lib/beacon-api-types", "mpc/shared", "mpc/client", "mpc/coordinator", "lib/ibc-union-spec", "lib/ibc-classic-spec", "lib/state-lens-light-client-types", "lib/create3", "lib/linea-types", "cosmwasm/osmosis-tokenfactory-token-minter", "cosmwasm/cw20-token-minter", "cosmwasm/cw-account", "cosmwasm/cw-escrow-vault", "cosmwasm/cw-unionversal-token", "cosmwasm/ucs03-zkgm-token-minter-api", "cosmwasm/osmosis-tokenfactory-token-owner", "cosmwasm/cw20-base", "cosmwasm/cw20-wrapped-tokenfactory", "cosmwasm/on-zkgm-call-proxy", "lib/scroll-types", "lib/fork-schedules", "lib/depolama", "lib/embed-commit", "lib/embed-commit/verifier", "lib/ucs04", "lib/deployments", "lib/consensus-primitives", "lib/solidity-slot", "tools/u", "lib/chain-kitchen", "tools/json-schema-to-nixos-module-options", "lib/voyager-types", "lib/voyager-client", "lib/voyager-plugin", "lib/voyager-sdk", "lib/voyager-plugin-protocol", "lib/wasm-client-type", "lib/sui-verifier", "lib/ucs03-zkgm-packet", "tools/update-deployments", "tools/union-test", "lib/cw20-ctx", "lib/ucs03-zkgmable", "lib/ucs03-solvable", ] [workspace.package] authors = ["Union Labs"] edition = "2021" license-file = "LICENSE" publish = false repository = "https://github.com/unionlabs/union" [workspace.metadata.cargo-machete] ignored = ["embed-commit"] [workspace.lints.clippy] disallowed_types = "deny" module_inception = "allow" # it's useful sometimes module_name_repetitions = "allow" # dumb lint # [workspace.lints.rust] # unused_crate_dependencies = "warn" [workspace.lints.rustdoc] broken-intra-doc-links = "deny" [profile.release] lto = "thin" opt-level = 3 [workspace.dependencies] # aptos-move-ibc = { path = "generated/rust/aptos-move-ibc", default-features = false } # aptos-verifier = { path = "lib/aptos-verifier", default-features = false } cometbft-rpc = { path = "lib/cometbft-rpc", default-features = false } cometbft-types = { path = "lib/cometbft-types", default-features = false } concurrent-keyring = { path = "lib/concurrent-keyring", default-features = false } cosmos-client = { path = "lib/cosmos-client", default-features = false } voyager-plugin-transaction-batch = { path = "voyager/plugins/transaction-batch", default-features = false } beacon-api = { path = "lib/beacon-api", default-features = false } beacon-api-types = { path = "lib/beacon-api-types", default-features = false } fork-schedules = { path = "lib/fork-schedules", default-features = false } depolama = { path = "lib/depolama", default-features = false } move-core-types-sui = { package = "move-core-types", git = "https://github.com/mystenlabs/sui", default-features = false } state-lens-light-client-types = { path = "lib/state-lens-light-client-types", default-features = false } sui-light-client-types = { path = "lib/sui-light-client-types", default-features = false } sui-sdk = { git = "https://github.com/mystenlabs/sui", default-features = false } sui-verifier = { path = "lib/sui-verifier", default-features = false } parlia-light-client-types = { path = "lib/parlia-light-client-types", default-features = false } parlia-types = { path = "lib/parlia-types", default-features = false } parlia-verifier = { path = "lib/parlia-verifier", default-features = false } base-client = { path = "lib/base-client", default-features = false } base-light-client-types = { path = "lib/base-light-client-types", default-features = false } base-verifier = { path = "lib/base-verifier", default-features = false } bob-client = { path = "lib/bob-client", default-features = false } bob-light-client-types = { path = "lib/bob-light-client-types", default-features = false } bob-types = { path = "lib/bob-types", default-features = false } bob-verifier = { path = "lib/bob-verifier", default-features = false } arbitrum-client = { path = "lib/arbitrum-client", default-features = false } arbitrum-light-client-types = { path = "lib/arbitrum-light-client-types", default-features = false } arbitrum-types = { path = "lib/arbitrum-types", default-features = false } arbitrum-verifier = { path = "lib/arbitrum-verifier", default-features = false } cometbls-groth16-verifier = { path = "lib/cometbls-groth16-verifier", default-features = false } cometbls-light-client = { path = "cosmwasm/ibc-union/lightclient/cometbls", default-features = false } cometbls-light-client-types = { path = "lib/cometbls-light-client-types", default-features = false } scroll-light-client-types = { path = "lib/scroll-light-client-types", default-features = false } ethereum-light-client = { path = "cosmwasm/ibc-union/lightclient/ethereum", default-features = false } ethereum-light-client-types = { path = "lib/ethereum-light-client-types", default-features = false } ethereum-sync-protocol = { path = "lib/ethereum-sync-protocol", default-features = false } ethereum-sync-protocol-types = { path = "lib/ethereum-sync-protocol-types", default-features = false } evm-storage-verifier = { path = "lib/evm-storage-verifier", default-features = false } berachain-light-client-types = { path = "lib/berachain-light-client-types", default-features = false } scroll-codec = { path = "lib/scroll-codec", default-features = false } scroll-types = { path = "lib/scroll-types", default-features = false } state-lens-ics23-ics23-light-client-types = { path = "lib/state-lens-ics23-ics23-light-client-types", default-features = false } state-lens-ics23-mpt-light-client-types = { path = "lib/state-lens-ics23-mpt-light-client-types", default-features = false } state-lens-ics23-smt-light-client-types = { path = "lib/state-lens-ics23-smt-light-client-types", default-features = false } ethermint-light-client-types = { path = "lib/ethermint-light-client-types", default-features = false } tendermint-light-client = { path = "cosmwasm/ibc-union/lightclient/tendermint", default-features = false } tendermint-light-client-types = { path = "lib/tendermint-light-client-types", default-features = false } tendermint-verifier = { path = "lib/tendermint-verifier", default-features = false } linea-light-client-types = { path = "lib/linea-light-client-types", default-features = false } linea-types = { path = "lib/linea-types", default-features = false } linea-zktrie = { path = "lib/linea-zktrie", default-features = false } ibc-solidity = { path = "lib/ibc-solidity", default-features = false } ibc-union = { path = "cosmwasm/ibc-union/core", default-features = false } ibc-union-light-client = { path = "cosmwasm/ibc-union/core/light-client-interface", default-features = false } ibc-union-msg = { path = "cosmwasm/ibc-union/core/msg", default-features = false } frissitheto = { path = "lib/frissitheto", default-features = false } cw-account = { path = "cosmwasm/cw-account", default-features = false } cw-escrow-vault = { path = "cosmwasm/cw-escrow-vault", default-features = false } cw-unionversal-token = { path = "cosmwasm/cw-unionversal-token", default-features = false } cw20-base = { path = "cosmwasm/cw20-base", default-features = false } cw20-ctx = { path = "lib/cw20-ctx", default-features = false } cw20-token-minter = { path = "cosmwasm/cw20-token-minter", default-features = false } cw20-wrapped-tokenfactory = { path = "cosmwasm/cw20-wrapped-tokenfactory", default-features = false } on-zkgm-call-proxy = { path = "cosmwasm/on-zkgm-call-proxy", default-features = false } osmosis-tokenfactory-token-minter = { path = "cosmwasm/osmosis-tokenfactory-token-minter", default-features = false } ucs03-solvable = { path = "lib/ucs03-solvable", default-features = false } ucs03-zkgm = { path = "cosmwasm/ibc-union/app/ucs03-zkgm", default-features = false } ucs03-zkgm-packet = { path = "lib/ucs03-zkgm-packet", default-features = false } ucs03-zkgm-token-minter-api = { path = "cosmwasm/ucs03-zkgm-token-minter-api", default-features = false } ucs03-zkgmable = { path = "lib/ucs03-zkgmable", default-features = false } gnark-key-parser = { path = "lib/gnark-key-parser", default-features = false } gnark-mimc = { path = "lib/gnark-mimc", default-features = false } ics23 = { path = "lib/ics23", default-features = false } macros = { path = "lib/macros", default-features = false } # move-bindgen = { path = "tools/move-bindgen", default-features = false } # move-bindgen-derive = { path = "lib/move-bindgen-derive", default-features = false } mpc-shared = { path = "mpc/shared", default-features = false } pg-queue = { path = "lib/pg-queue", default-features = false } poseidon-rs = { path = "lib/poseidon-rs", default-features = false } protos = { path = "generated/rust/protos", default-features = false } reconnecting-jsonrpc-ws-client = { path = "lib/reconnecting-jsonrpc-ws-client", default-features = false } ibc-classic-spec = { path = "lib/ibc-classic-spec", default-features = false } ibc-union-spec = { path = "lib/ibc-union-spec", default-features = false } movement-light-client-types = { path = "lib/movement-light-client-types", default-features = false } trusted-mpt-light-client-types = { path = "lib/trusted-mpt-light-client-types", default-features = false } cosmos-sdk-event = { path = "lib/cosmos-sdk-event", default-features = false } serde-utils = { path = "lib/serde-utils", default-features = false } ssz = { path = "lib/ssz", default-features = false } ssz-derive = { path = "lib/ssz-derive", default-features = false } subset-of = { path = "lib/subset-of", default-features = false } subset-of-derive = { path = "lib/subset-of-derive", default-features = false } token-factory-api = { path = "cosmwasm/token-factory-api", default-features = false } unionlabs = { path = "lib/unionlabs", default-features = false, features = ["proto"] } # TODO: Properly feature gate proto in unionlabs unionlabs-encoding = { path = "lib/unionlabs-encoding", default-features = false } unionlabs-primitives = { path = "lib/unionlabs-primitives", default-features = false } zktrie = { path = "lib/zktrie-rs", default-features = false } galois-rpc = { path = "lib/galois-rpc", default-features = false } voyager-client = { path = "lib/voyager-client", default-features = false } voyager-core = { path = "lib/voyager-core", default-features = false } voyager-message = { path = "lib/voyager-message", default-features = false } voyager-plugin = { path = "lib/voyager-plugin", default-features = false } voyager-plugin-protocol = { path = "lib/voyager-plugin-protocol", default-features = false } voyager-primitives = { path = "lib/voyager-primitives", default-features = false } voyager-rpc = { path = "lib/voyager-rpc", default-features = false } voyager-sdk = { path = "lib/voyager-sdk", default-features = false } voyager-types = { path = "lib/voyager-types", default-features = false } voyager-vm = { path = "lib/voyager-vm", default-features = false } embed-commit = { path = "lib/embed-commit", default-features = false } embed-commit-verifier = { path = "lib/embed-commit/verifier", default-features = false } consensus-primitives = { path = "lib/consensus-primitives", default-features = false } state-lens-ics23-mpt-light-client = { path = "cosmwasm/ibc-union/lightclient/state-lens-ics23-mpt", default-features = false } create3 = { path = "lib/create3", default-features = false } deployments = { path = "lib/deployments", default-features = false } solidity-slot = { path = "lib/solidity-slot", default-features = false } ucs04 = { path = "lib/ucs04", default-features = false } wasm-client-type = { path = "lib/wasm-client-type", default-features = false } # ===================== # external dependencies # ===================== tendermint-rpc = { git = "https://github.com/unionlabs/tendermint-rs", branch = "v0.39.1-bn254", default-features = false } alloy = { version = "1.0.9", default-features = false } alloy-primitives = { version = "1.1.2", default-features = false } alloy-sol-types = { version = "1.1.2", default-features = true } anyhow = { version = "1" } itertools = { version = "0.13" } syn = { version = "2", default-features = false } # aptos-crypto = { git = "https://github.com/unionlabs/aptos-core" } # https://github.com/aptos-labs/aptos-core/pull/12636 # aptos-rest-client = { git = "https://github.com/unionlabs/aptos-core" } # https://github.com/aptos-labs/aptos-core/pull/12636 # aptos-types = { git = "https://github.com/unionlabs/aptos-core" } # https://github.com/aptos-labs/aptos-core/pull/12636 # move-core-types = { git = "https://github.com/unionlabs/aptos-core" } axum = { version = "0.6.20", default-features = false } base64 = { version = "0.21", default-features = false } bcs = { version = "0.1.6", default-features = false } bincode = { version = "2.0.1", default-features = false, features = ["std"] } # std is used by all dependants bip32 = { version = "0.5.3", default-features = false } bitvec = { version = "1.0.1", default-features = false } borsh = { version = "1.5.7", default-features = false } bs58 = { version = "0.5.1", default-features = false } chrono = { version = "0.4.41", default-features = false } clap = { version = "4.5.39", default-features = false, features = ["std"] } # clap has a fake std feature that is required to be enabled by default color-eyre = { version = "0.6.5", default-features = false } cosmwasm-schema = { version = "2.2.2", default-features = false } cosmwasm-std = { version = "2.2.2", default-features = false, features = ["std"] } # cosmwasm-std has a fake std feature that is requried to be enabled by default crossbeam-queue = { version = "0.3.12", default-features = false } cw-orch = { version = "0.27.0", default-features = false } cw-storage-plus = { version = "2.0.0", default-features = false } dashmap = { version = "5.5.3", default-features = false } derive_more = { version = "0.99.20", default-features = false } either = { version = "1.15.0", default-features = false } enumorph = { version = "0.1.2", default-features = false } ethabi = { version = "18.0.0", default-features = false } frame-support-procedural = { version = "30.0.6", default-features = false } futures = { version = "0.3.31", default-features = false } generic-array = { version = "0.14.7", default-features = false } hex = { version = "0.4.3", default-features = false } hex-literal = { version = "0.4.1", default-features = false } jsonrpsee = { version = "0.25.1", default-features = false } lazy_static = { version = "1.5.0", default-features = false } near-sdk = { version = "5.14.0", default-features = false } num-bigint = { version = "0.4", default-features = false } opentelemetry = { version = "0.29.1", default-features = false } opentelemetry-otlp = { version = "0.29.0", default-features = false } opentelemetry_sdk = { version = "0.29.0", default-features = false } primitive-types = { version = "0.12.2", default-features = false } prost = { version = "0.12.6", default-features = false } reqwest = { version = "0.11.27", default-features = false } ripemd = { version = "0.1.3", default-features = false } rlp = { version = "0.5.2", default-features = false } schemars = { version = "0.8.22", default-features = false } serde = { version = "1.0.219", default-features = false } serde_json = { version = "1.0.140", default-features = false, features = ["alloc"] } # serde-json requires one of "std" or "alloc" serde_with = { version = "3.12.0", default-features = false, features = ["macros"] } sha2 = { version = "0.10.9", default-features = false } sha3 = { version = "0.10.8", default-features = false } sqlx = { version = "0.7.4", default-features = false } static_assertions = { git = "https://github.com/nvzqz/static-assertions" } # https://github.com/nvzqz/static-assertions/pull/28 subtle-encoding = { version = "0.5.1", default-features = false } thiserror = { version = "2.0.12", default-features = false } time = { version = "0.3.41", default-features = false } # Pinning to 0.3.36 here since they introduced a new trait in the minor version of semver.. tokio = { version = "1.45.1", default-features = false } tokio-util = { version = "0.7.15", default-features = false } toml = { version = "0.8.22", default-features = false } tonic = { version = "0.10", default-features = false } tracing = { version = "0.1.41", default-features = false } # tracing-opentelemetry = { version = "0.30.0", default-features = false } quote = { version = "1.0.40" } tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt", "ansi"] } typenum = { version = "1.18.0", default-features = false } [patch."crates-io"] # arbitrary = { git = "https://github.com/unionlabs/arbitrary" } serde-json-wasm = { git = "https://github.com/benluelo/serde-json-wasm", branch = "impl-collect-str" } # parity-secp256k1 = { git = "https://github.com/paritytech/rust-secp256k1" } # # https://aptos.dev/en/build/sdks/rust-sdk # merlin = { git = "https://github.com/aptos-labs/merlin" } # x25519-dalek = { git = "https://github.com/aptos-labs/x25519-dalek", branch = "zeroize_v1" }