From 365a0aeead67cf1a1dfc01ca333fdebfb5f98eee Mon Sep 17 00:00:00 2001 From: hanabi1224 Date: Wed, 6 Aug 2025 21:09:42 +0800 Subject: [PATCH] chore: remove `serde_tuple` in favor of `fvm_ipld_encoding::tuple` --- Cargo.lock | 66 +++++++++---------------- Cargo.toml | 1 - src/beacon/beacon_entries.rs | 2 +- src/blocks/block.rs | 2 +- src/blocks/election_proof.rs | 2 +- src/blocks/gossip_block.rs | 2 +- src/blocks/header.rs | 2 +- src/blocks/ticket.rs | 2 +- src/cli/subcommands/state_cmd.rs | 2 +- src/libp2p/chain_exchange/message.rs | 2 +- src/libp2p/hello/message.rs | 2 +- src/lotus_json/mod.rs | 2 +- src/message/signed_message.rs | 2 +- src/rpc/methods/f3/types.rs | 2 +- src/rpc/methods/miner.rs | 2 +- src/shim/actors/builtin/verifreg/mod.rs | 3 +- 16 files changed, 36 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 27b21e0c21d5..7dddfbd08170 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,9 +136,9 @@ checksum = "dc43e46599f3d77fcf2f2ca89e4d962910b0c19c44e7b58679cbbdfd1820a662" [[package]] name = "anstream" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -166,22 +166,22 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.9" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -2028,9 +2028,9 @@ dependencies = [ [[package]] name = "derive-where" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510c292c8cf384b1a340b816a9a6cf2599eb8f566a44949024af88418000c50b" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", @@ -3216,7 +3216,6 @@ dependencies = [ "serde", "serde_ipld_dagcbor", "serde_json", - "serde_tuple 1.1.2", "serde_with", "serde_yaml", "serial_test", @@ -3551,7 +3550,7 @@ dependencies = [ "replace_with", "serde", "serde_repr", - "serde_tuple 0.5.0", + "serde_tuple", "thiserror 2.0.12", "wasmtime", "yastl", @@ -3587,7 +3586,7 @@ dependencies = [ "rayon", "replace_with", "serde", - "serde_tuple 0.5.0", + "serde_tuple", "thiserror 2.0.12", "wasmtime", "wasmtime-environ", @@ -3721,7 +3720,7 @@ dependencies = [ "serde", "serde_ipld_dagcbor", "serde_repr", - "serde_tuple 0.5.0", + "serde_tuple", "thiserror 2.0.12", ] @@ -3787,7 +3786,7 @@ dependencies = [ "num-traits", "serde", "serde_repr", - "serde_tuple 0.5.0", + "serde_tuple", "thiserror 2.0.12", "unsigned-varint 0.8.0", ] @@ -3817,7 +3816,7 @@ dependencies = [ "num-traits", "quickcheck", "serde", - "serde_tuple 0.5.0", + "serde_tuple", "thiserror 2.0.12", "unsigned-varint 0.8.0", ] @@ -5292,9 +5291,9 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.49.0" +version = "0.49.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba535a5d960cc39c3621cee2941ff570a9476679a4c7ca80982412b14f4a88fd" +checksum = "c7f58e37d8d6848e5c4c9e3c35c6f61133235bff2960c9c00a663b0849301221" dependencies = [ "async-channel", "asynchronous-codec", @@ -8075,9 +8074,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" dependencies = [ "bitflags 2.9.1", "core-foundation 0.10.1", @@ -8227,17 +8226,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f025b91216f15a2a32aa39669329a475733590a015835d1783549a56d09427" dependencies = [ "serde", - "serde_tuple_macros 0.5.0", -] - -[[package]] -name = "serde_tuple" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52569c5296679bd28e2457f067f97d270077df67da0340647da5412c8eac8d9e" -dependencies = [ - "serde", - "serde_tuple_macros 1.1.2", + "serde_tuple_macros", ] [[package]] @@ -8251,17 +8240,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "serde_tuple_macros" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f46c707781471741d5f2670edb36476479b26e94cf43efe21ca3c220b97ef2e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -10916,9 +10894,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbb9122ea75b11bf96e7492afb723e8a7fbe12c67417aa95e7e3d18144d37cd" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", diff --git a/Cargo.toml b/Cargo.toml index 9857e8fa891c..5c84594e4e6e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -183,7 +183,6 @@ semver = "1" serde = { version = "1", default-features = false, features = ["derive"] } serde_ipld_dagcbor = "0.6" serde_json = { version = "1", features = ["raw_value"] } -serde_tuple = "1" serde_with = { version = "3", features = ["chrono_0_4"] } serde_yaml = "0.9" sha2 = { version = "0.10", default-features = false } diff --git a/src/beacon/beacon_entries.rs b/src/beacon/beacon_entries.rs index 5b020a8c4af3..7d75a512bdb3 100644 --- a/src/beacon/beacon_entries.rs +++ b/src/beacon/beacon_entries.rs @@ -4,8 +4,8 @@ use crate::utils::encoding::serde_byte_array; use byteorder::{BigEndian, ByteOrder as _}; use digest::Digest as _; +use fvm_ipld_encoding::tuple::*; use get_size2::GetSize; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; /// The result from getting an entry from `Drand`. /// The entry contains the round, or epoch as well as the BLS signature for that diff --git a/src/blocks/block.rs b/src/blocks/block.rs index 3dba9bcb1824..c576232f4f20 100644 --- a/src/blocks/block.rs +++ b/src/blocks/block.rs @@ -5,7 +5,7 @@ use crate::message::SignedMessage; use crate::shim::message::Message; use cid::Cid; use fvm_ipld_blockstore::Blockstore; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; +use fvm_ipld_encoding::tuple::*; use super::CachingBlockHeader; diff --git a/src/blocks/election_proof.rs b/src/blocks/election_proof.rs index 0d07c388fda4..64b166ec22d4 100644 --- a/src/blocks/election_proof.rs +++ b/src/blocks/election_proof.rs @@ -4,11 +4,11 @@ use crate::blocks::VRFProof; use crate::shim::clock::BLOCKS_PER_EPOCH; use crate::utils::encoding::blake2b_256; +use fvm_ipld_encoding::tuple::*; use num::{ BigInt, Integer, bigint::{ParseBigIntError, Sign}, }; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; use std::sync::LazyLock; const PRECISION: u64 = 256; diff --git a/src/blocks/gossip_block.rs b/src/blocks/gossip_block.rs index 834c45332aba..3df4128df329 100644 --- a/src/blocks/gossip_block.rs +++ b/src/blocks/gossip_block.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0, MIT use cid::Cid; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; +use fvm_ipld_encoding::tuple::*; use crate::blocks::CachingBlockHeader; diff --git a/src/blocks/header.rs b/src/blocks/header.rs index 639633bc9a64..ed70529f8a2a 100644 --- a/src/blocks/header.rs +++ b/src/blocks/header.rs @@ -19,10 +19,10 @@ use crate::{ use cid::Cid; use fvm_ipld_blockstore::Blockstore; use fvm_ipld_encoding::CborStore as _; +use fvm_ipld_encoding::tuple::*; use multihash_derive::MultihashDigest as _; use num::BigInt; use serde::{Deserialize, Serialize}; -use serde_tuple::{Deserialize_tuple, Serialize_tuple}; #[cfg(test)] mod test; diff --git a/src/blocks/ticket.rs b/src/blocks/ticket.rs index d221012ae79e..b9c88b78cc4c 100644 --- a/src/blocks/ticket.rs +++ b/src/blocks/ticket.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0, MIT use crate::blocks::VRFProof; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; +use fvm_ipld_encoding::tuple::*; /// A Ticket is a marker of a tick of the blockchain's clock. It is the source /// of randomness for proofs of storage and leader election. It is generated diff --git a/src/cli/subcommands/state_cmd.rs b/src/cli/subcommands/state_cmd.rs index 6aa319ccb8f8..c6ed5432dd45 100644 --- a/src/cli/subcommands/state_cmd.rs +++ b/src/cli/subcommands/state_cmd.rs @@ -9,7 +9,7 @@ use crate::shim::clock::ChainEpoch; use crate::shim::econ::TokenAmount; use cid::Cid; use clap::Subcommand; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; +use fvm_ipld_encoding::tuple::*; use std::path::PathBuf; use std::str::FromStr; use std::time::Duration; diff --git a/src/libp2p/chain_exchange/message.rs b/src/libp2p/chain_exchange/message.rs index 4732ec6fbf49..7c9955e9d913 100644 --- a/src/libp2p/chain_exchange/message.rs +++ b/src/libp2p/chain_exchange/message.rs @@ -7,9 +7,9 @@ use crate::blocks::{BLOCK_MESSAGE_LIMIT, Block, CachingBlockHeader, FullTipset, use crate::message::SignedMessage; use crate::shim::message::Message; use cid::Cid; +use fvm_ipld_encoding::tuple::*; use nunny::Vec as NonEmpty; use serde::{Deserialize, Deserializer, Serialize, Serializer}; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; /// `ChainExchange` Filecoin header set bit. pub const HEADERS: u64 = 0b01; diff --git a/src/libp2p/hello/message.rs b/src/libp2p/hello/message.rs index aabe775bb1e9..8cce1880b11c 100644 --- a/src/libp2p/hello/message.rs +++ b/src/libp2p/hello/message.rs @@ -4,8 +4,8 @@ use crate::shim::bigint::BigInt; use crate::shim::clock::ChainEpoch; use cid::Cid; +use fvm_ipld_encoding::tuple::*; use nunny::Vec as NonEmpty; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; /// Hello message #[derive(Clone, Debug, PartialEq, Eq, Serialize_tuple, Deserialize_tuple)] diff --git a/src/lotus_json/mod.rs b/src/lotus_json/mod.rs index b115842e0c52..6d2d35c56ec2 100644 --- a/src/lotus_json/mod.rs +++ b/src/lotus_json/mod.rs @@ -55,7 +55,7 @@ //! //! # Lotus JSON in Forest //! - Have a struct which represents a domain object: e.g [`GossipBlock`](crate::blocks::GossipBlock). -//! - Implement [`serde::Serialize`] on that object, normally using [`serde_tuple::Serialize_tuple`]. +//! - Implement [`serde::Serialize`] on that object, normally using [`fvm_ipld_encoding::tuple::Serialize_tuple`]. //! This corresponds to the CBOR representation. //! - Implement [`HasLotusJson`] on the domain object. //! This attaches a separate JSON type, which should implement (`#[derive(...)]`) [`serde::Serialize`] and [`serde::Deserialize`] AND conversions to and from the domain object diff --git a/src/message/signed_message.rs b/src/message/signed_message.rs index 836dc72f2326..bcaec7f309ef 100644 --- a/src/message/signed_message.rs +++ b/src/message/signed_message.rs @@ -10,8 +10,8 @@ use crate::shim::{ econ::TokenAmount, message::Message, }; +use fvm_ipld_encoding::tuple::*; use fvm_ipld_encoding::{RawBytes, to_vec}; -use serde_tuple::{self, Deserialize_tuple, Serialize_tuple}; /// Represents a wrapped message with signature bytes. #[cfg_attr(test, derive(derive_quickcheck_arbitrary::Arbitrary))] diff --git a/src/rpc/methods/f3/types.rs b/src/rpc/methods/f3/types.rs index e965da8ea485..e225a487bed0 100644 --- a/src/rpc/methods/f3/types.rs +++ b/src/rpc/methods/f3/types.rs @@ -13,7 +13,7 @@ use byteorder::ByteOrder as _; use cid::Cid; use fil_actors_shared::fvm_ipld_bitfield::BitField; use flate2::read::DeflateDecoder; -use fvm_ipld_encoding::tuple::{Deserialize_tuple, Serialize_tuple}; +use fvm_ipld_encoding::tuple::*; use fvm_shared4::ActorID; use itertools::Itertools as _; use libp2p::PeerId; diff --git a/src/rpc/methods/miner.rs b/src/rpc/methods/miner.rs index 12b910b9f8f3..2f1f276fed87 100644 --- a/src/rpc/methods/miner.rs +++ b/src/rpc/methods/miner.rs @@ -31,13 +31,13 @@ use bls_signatures::Serialize as _; use cid::Cid; use fil_actors_shared::fvm_ipld_amt::Amtv0 as Amt; use fvm_ipld_blockstore::Blockstore; +use fvm_ipld_encoding::tuple::*; use fvm_shared2::crypto::signature::BLS_SIG_LEN; use group::prime::PrimeCurveAffine as _; use itertools::Itertools; use parking_lot::RwLock; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use serde_tuple::Serialize_tuple; use std::sync::Arc; diff --git a/src/shim/actors/builtin/verifreg/mod.rs b/src/shim/actors/builtin/verifreg/mod.rs index b4dae1d9a0ea..ebe292fb7968 100644 --- a/src/shim/actors/builtin/verifreg/mod.rs +++ b/src/shim/actors/builtin/verifreg/mod.rs @@ -14,8 +14,7 @@ use fil_actor_verifreg_state::{ use fil_actors_shared::v8::{HAMT_BIT_WIDTH, make_map_with_root_and_bitwidth}; use fil_actors_shared::v9::Keyer; use fvm_ipld_blockstore::Blockstore; -use fvm_ipld_encoding::tuple::serde_tuple; -use fvm_ipld_encoding::tuple::{Deserialize_tuple, Serialize_tuple}; +use fvm_ipld_encoding::tuple::*; use fvm_shared2::address::{Address, Protocol}; use fvm_shared4::ActorID; use fvm_shared4::bigint::bigint_ser::BigIntDe;