Skip to content

Commit 3da5ee1

Browse files
committed
changelog and test snapshot
1 parent 087d682 commit 3da5ee1

36 files changed

+268
-108
lines changed

Diff for: CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
### Added
3333

3434
- [#5461](https://github.com/ChainSafe/forest/pull/5461) Add `forest-tool shed migrate-state` command.
35+
- [#5488](https://github.com/ChainSafe/forest/pull/5488) Add paritial support for the `Filecoin.StateCompute` RPC method.
3536

3637
### Changed
3738

Diff for: src/blocks/tipset.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ mod lotus_json {
555555

556556
use super::TipsetKey;
557557

558-
#[derive(Clone, JsonSchema)]
558+
#[derive(Debug, PartialEq, Clone, JsonSchema)]
559559
#[schemars(rename = "Tipset")]
560560
pub struct TipsetLotusJson(#[schemars(with = "TipsetLotusJsonInner")] Tipset);
561561

Diff for: src/interpreter/vm.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ where
357357
) -> ApplyBlockResult {
358358
let mut receipts = Vec::new();
359359
let mut events = Vec::new();
360-
let mut processed = HashSet::<Cid>::default();
360+
let mut processed = HashSet::default();
361361

362362
for block in messages.iter() {
363363
let mut penalty = TokenAmount::zero();

Diff for: src/lotus_json/actor_state.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use super::*;
55
use crate::shim::{address::Address, econ::TokenAmount, state_tree::ActorState};
66
use ::cid::Cid;
77

8-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
8+
#[derive(Debug,PartialEq,Clone, Serialize, Deserialize, JsonSchema)]
99
#[serde(rename_all = "PascalCase")]
1010
#[schemars(rename = "ActorState")]
1111
pub struct ActorStateLotusJson {
@@ -22,7 +22,6 @@ pub struct ActorStateLotusJson {
2222
#[schemars(with = "LotusJson<Option<Address>>")]
2323
#[serde(
2424
with = "crate::lotus_json",
25-
skip_serializing_if = "Option::is_none",
2625
default
2726
)]
2827
delegated_address: Option<Address>,

Diff for: src/lotus_json/address.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
use super::*;
55
use crate::shim::address::Address;
66

7-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
7+
#[derive(Debug,PartialEq,Clone, Serialize, Deserialize, JsonSchema)]
88
#[schemars(rename = "Address")]
99
pub struct AddressLotusJson(
1010
#[schemars(with = "String")]

Diff for: src/lotus_json/allocation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use fvm_shared4::clock::ChainEpoch;
88
use fvm_shared4::piece::PaddedPieceSize;
99
use fvm_shared4::ActorID;
1010

11-
#[derive(Clone, Debug, Serialize, Deserialize, JsonSchema)]
11+
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, JsonSchema)]
1212
#[serde(rename_all = "PascalCase")]
1313
#[schemars(rename = "Allocation")]
1414
pub struct AllocationLotusJson {

Diff for: src/lotus_json/beacon_entry.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::beacon::BeaconEntry;
55

66
use super::*;
77

8-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
8+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
99
#[serde(rename_all = "PascalCase")]
1010
#[schemars(rename = "BeaconEntry")]
1111
pub struct BeaconEntryLotusJson {

Diff for: src/lotus_json/big_int.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use super::*;
55

66
use num::BigInt;
77

8-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
8+
#[derive(Debug,PartialEq,Clone, Serialize, Deserialize, JsonSchema)]
99
#[schemars(rename = "BigInt")]
1010
pub struct BigIntLotusJson(
1111
#[schemars(with = "String")]

Diff for: src/lotus_json/bit_field.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use super::*;
55

66
use fil_actors_shared::fvm_ipld_bitfield::{json::BitFieldJson, BitField};
77

8-
#[derive(Serialize, Deserialize, JsonSchema)]
8+
#[derive(Debug, PartialEq, Serialize, Deserialize, JsonSchema)]
99
#[schemars(rename = "BitField")]
1010
pub struct BitFieldLotusJson(#[schemars(with = "Option<Vec<u8>>")] pub BitFieldJson);
1111

Diff for: src/lotus_json/block_header.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use serde::{Deserialize, Serialize};
1616

1717
use crate::blocks::{CachingBlockHeader, RawBlockHeader};
1818

19-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
19+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
2020
#[serde(rename_all = "PascalCase")]
2121
#[schemars(rename = "BlockHeader")]
2222
pub struct BlockHeaderLotusJson {

Diff for: src/lotus_json/cid.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
use super::*;
55

6-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
6+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
77
#[schemars(rename = "Cid")]
88
pub struct CidLotusJson {
99
#[schemars(with = "String")]

Diff for: src/lotus_json/key_info.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use super::*;
44

55
use crate::{key_management::KeyInfo, shim::crypto::SignatureType};
66

7-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
7+
#[derive(Debug,PartialEq,Clone, Serialize, Deserialize, JsonSchema)]
88
#[serde(rename_all = "PascalCase")]
99
#[schemars(rename = "KeyInfo")]
1010
pub struct KeyInfoLotusJson {

Diff for: src/lotus_json/message.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use super::*;
66
use crate::shim::{address::Address, econ::TokenAmount, message::Message};
77
use fvm_ipld_encoding::RawBytes;
88

9-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
9+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
1010
#[serde(rename_all = "PascalCase")]
1111
#[schemars(rename = "Message")]
1212
pub struct MessageLotusJson {

Diff for: src/lotus_json/miner_info.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use fil_actor_miner_state::v12::{BeneficiaryTerm, PendingBeneficiaryChange};
1212
use fvm_ipld_encoding::BytesDe;
1313
use libp2p::PeerId;
1414

15-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
15+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
1616
#[serde(rename_all = "PascalCase")]
1717
#[schemars(rename = "MinerInfo")]
1818
pub struct MinerInfoLotusJson {

Diff for: src/lotus_json/miner_power.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use super::*;
55
use crate::shim::actors::miner::MinerPower;
66
use crate::shim::actors::power::Claim;
77

8-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
8+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
99
#[serde(rename_all = "PascalCase")]
1010
#[schemars(rename = "MinerPower")]
1111
pub struct MinerPowerLotusJson {

Diff for: src/lotus_json/receipt.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use fvm_ipld_encoding::RawBytes;
77
use super::*;
88
use crate::shim::executor::Receipt;
99

10-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
10+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
1111
#[serde(rename_all = "PascalCase")]
1212
#[schemars(rename = "Receipt")]
1313
pub struct ReceiptLotusJson {

Diff for: src/lotus_json/signature.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
use super::*;
55
use crate::shim::crypto::{Signature, SignatureType};
66

7-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
7+
#[derive(Debug,PartialEq,Clone, Serialize, Deserialize, JsonSchema)]
88
#[serde(rename_all = "PascalCase")]
99
#[schemars(rename = "Signature")]
1010
pub struct SignatureLotusJson {

Diff for: src/lotus_json/signed_message.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use ::cid::Cid;
77

88
use super::*;
99

10-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
10+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
1111
#[serde(rename_all = "PascalCase")]
1212
#[schemars(rename = "SignedMessage")]
1313
pub struct SignedMessageLotusJson {

Diff for: src/lotus_json/token_amount.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use super::*;
55
use crate::shim::econ::TokenAmount;
66
use num::BigInt;
77

8-
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
8+
#[derive(Debug,PartialEq,Clone, Serialize, Deserialize, JsonSchema)]
99
#[serde(transparent)] // name the field for clarity
1010
#[schemars(rename = "TokenAmount")]
1111
pub struct TokenAmountLotusJson {

Diff for: src/lotus_json/vec_u8.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use schemars::schema::*;
77
// This code looks odd so we can
88
// - use #[serde(with = "...")]
99
// - de/ser empty vecs as null
10-
#[derive(Clone, Serialize, Deserialize)]
10+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
1111
pub struct VecU8LotusJson(Option<Inner>);
1212

1313
impl JsonSchema for VecU8LotusJson {
@@ -26,7 +26,7 @@ impl JsonSchema for VecU8LotusJson {
2626
}
2727
}
2828

29-
#[derive(Clone, Serialize, Deserialize)]
29+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
3030
struct Inner(#[serde(with = "base64_standard")] Vec<u8>);
3131

3232
impl HasLotusJson for Vec<u8> {

Diff for: src/rpc/methods/chain.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,7 @@ fn load_api_messages_from_tipset(
750750
Ok(messages)
751751
}
752752

753-
#[derive(Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
753+
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
754754
pub struct BlockMessages {
755755
#[serde(rename = "BlsMessages", with = "crate::lotus_json")]
756756
#[schemars(with = "LotusJson<Vec<Message>>")]

Diff for: src/rpc/methods/chain/types.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub struct ObjStat {
1212
}
1313
lotus_json_with_self!(ObjStat);
1414

15-
#[derive(Serialize, Deserialize, JsonSchema, Clone)]
15+
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, PartialEq)]
1616
#[serde(rename_all = "PascalCase")]
1717
pub struct Event {
1818
/// Actor ID

Diff for: src/rpc/methods/eth.rs

+22-3
Original file line numberDiff line numberDiff line change
@@ -409,13 +409,32 @@ impl ExtBlockNumberOrHash {
409409
}
410410
}
411411

412-
#[derive(PartialEq, Debug, Clone, Serialize, Deserialize, JsonSchema)]
412+
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
413413
#[serde(untagged)] // try a Vec<String>, then a Vec<Tx>
414414
pub enum Transactions {
415415
Hash(Vec<String>),
416416
Full(Vec<ApiEthTx>),
417417
}
418418

419+
impl Transactions {
420+
pub fn is_empty(&self) -> bool {
421+
match self {
422+
Self::Hash(v) => v.is_empty(),
423+
Self::Full(v) => v.is_empty(),
424+
}
425+
}
426+
}
427+
428+
impl PartialEq for Transactions {
429+
fn eq(&self, other: &Self) -> bool {
430+
match (self, other) {
431+
(Self::Hash(a), Self::Hash(b)) => a == b,
432+
(Self::Full(a), Self::Full(b)) => a == b,
433+
_ => self.is_empty() && other.is_empty(),
434+
}
435+
}
436+
}
437+
419438
impl Default for Transactions {
420439
fn default() -> Self {
421440
Self::Hash(vec![])
@@ -516,15 +535,15 @@ impl ApiEthTx {
516535
}
517536
}
518537

519-
#[derive(Debug, Clone, Default)]
538+
#[derive(Debug, Clone, Default, PartialEq, Eq)]
520539
pub struct EthSyncingResult {
521540
pub done_sync: bool,
522541
pub starting_block: i64,
523542
pub current_block: i64,
524543
pub highest_block: i64,
525544
}
526545

527-
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
546+
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)]
528547
#[serde(untagged)]
529548
pub enum EthSyncingResultLotusJson {
530549
DoneSync(bool),

Diff for: src/rpc/methods/eth/types.rs

+22-1
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ lotus_json_with_self!(EthFilterSpec);
493493
/// - A list of block hashes
494494
/// - A list of transaction hashes
495495
/// - Or a list of logs
496-
#[derive(PartialEq, Debug, Clone, Serialize, Deserialize, JsonSchema)]
496+
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
497497
#[serde(untagged)]
498498
pub enum EthFilterResult {
499499
Blocks(Vec<EthHash>),
@@ -502,6 +502,27 @@ pub enum EthFilterResult {
502502
}
503503
lotus_json_with_self!(EthFilterResult);
504504

505+
impl EthFilterResult {
506+
pub fn is_empty(&self) -> bool {
507+
match self {
508+
Self::Blocks(v) => v.is_empty(),
509+
Self::Txs(v) => v.is_empty(),
510+
Self::Logs(v) => v.is_empty(),
511+
}
512+
}
513+
}
514+
515+
impl PartialEq for EthFilterResult {
516+
fn eq(&self, other: &Self) -> bool {
517+
match (self, other) {
518+
(Self::Blocks(a), Self::Blocks(b)) => a == b,
519+
(Self::Txs(a), Self::Txs(b)) => a == b,
520+
(Self::Logs(a), Self::Logs(b)) => a == b,
521+
_ => self.is_empty() && other.is_empty(),
522+
}
523+
}
524+
}
525+
505526
#[derive(PartialEq, Default, Serialize, Deserialize, Debug, Clone, JsonSchema)]
506527
#[serde(rename_all = "camelCase")]
507528
pub struct EthCallTraceAction {

Diff for: src/rpc/methods/misc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ pub struct ActorEventBlock {
6969
pub value: LotusJson<Vec<u8>>,
7070
}
7171

72-
#[derive(PartialEq, Clone, JsonSchema, Serialize, Deserialize)]
72+
#[derive(Debug, PartialEq, Clone, JsonSchema, Serialize, Deserialize)]
7373
#[serde(rename_all = "camelCase")]
7474
pub struct ActorEvent {
7575
pub entries: Vec<EventEntry>,

Diff for: src/rpc/methods/net/types.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use schemars::JsonSchema;
88
use serde::{Deserialize, Serialize};
99

1010
// Net API
11-
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
11+
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
1212
#[serde(rename_all = "PascalCase")]
1313
pub struct AddrInfo {
1414
#[serde(rename = "ID")]
@@ -27,7 +27,7 @@ impl AddrInfo {
2727
}
2828
}
2929

30-
#[derive(Debug, Default, Serialize, Deserialize, Clone, JsonSchema)]
30+
#[derive(Debug, Default, Serialize, Deserialize, Clone, JsonSchema, PartialEq)]
3131
pub struct NetInfoResult {
3232
pub num_peers: usize,
3333
pub num_connections: u32,
@@ -52,7 +52,7 @@ impl From<libp2p::swarm::NetworkInfo> for NetInfoResult {
5252
}
5353
}
5454

55-
#[derive(Debug, Default, Serialize, Deserialize, Clone, JsonSchema)]
55+
#[derive(Debug, Default, Serialize, Deserialize, Clone, JsonSchema, PartialEq)]
5656
#[serde(rename_all = "PascalCase")]
5757
pub struct NatStatusResult {
5858
pub reachability: i32,

Diff for: src/rpc/methods/node.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,28 +69,28 @@ impl RpcMethod<0> for NodeStatus {
6969
}
7070
}
7171

72-
#[derive(Debug, Serialize, Deserialize, Default, Clone, JsonSchema)]
72+
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Default, Clone, JsonSchema)]
7373
pub struct NodeSyncStatus {
7474
pub epoch: u64,
7575
pub behind: u64,
7676
}
7777
lotus_json_with_self!(NodeSyncStatus);
7878

79-
#[derive(Debug, Serialize, Deserialize, Default, Clone, JsonSchema)]
79+
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Default, Clone, JsonSchema)]
8080
pub struct NodePeerStatus {
8181
pub peers_to_publish_msgs: u32,
8282
pub peers_to_publish_blocks: u32,
8383
}
8484
lotus_json_with_self!(NodePeerStatus);
8585

86-
#[derive(Debug, Serialize, Deserialize, Default, Clone, JsonSchema)]
86+
#[derive(Debug, PartialEq, Serialize, Deserialize, Default, Clone, JsonSchema)]
8787
pub struct NodeChainStatus {
8888
pub blocks_per_tipset_last_100: f64,
8989
pub blocks_per_tipset_last_finality: f64,
9090
}
9191
lotus_json_with_self!(NodeChainStatus);
9292

93-
#[derive(Debug, Deserialize, Default, Serialize, Clone, JsonSchema)]
93+
#[derive(Debug, Deserialize, Default, Serialize, Clone, JsonSchema, PartialEq)]
9494
pub struct NodeStatusResult {
9595
pub sync_status: NodeSyncStatus,
9696
pub peer_status: NodePeerStatus,

0 commit comments

Comments
 (0)