Skip to content

Commit

Permalink
fix stored_ask
Browse files Browse the repository at this point in the history
Signed-off-by: Alexey Chernyshov <[email protected]>
  • Loading branch information
Alexey-N-Chernyshov committed Nov 29, 2021
1 parent 936285b commit b9ad8cf
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 118 deletions.
1 change: 0 additions & 1 deletion core/markets/storage/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@

add_subdirectory(chain_events)
add_subdirectory(client)
add_subdirectory(protocol)
add_subdirectory(provider)
30 changes: 3 additions & 27 deletions core/markets/storage/ask_protocol.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,7 @@ namespace fc::markets::storage {
seq_no)

/** StorageAsk used in V1.1.0. Cbores with field names. */
struct StorageAskV1_1_0 : public StorageAsk {
private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const StorageAskV1_1_0 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, StorageAskV1_1_0 &);
};
struct StorageAskV1_1_0 : public StorageAsk {};

inline CBOR2_ENCODE(StorageAskV1_1_0) {
auto m{CborEncodeStream::map()};
Expand Down Expand Up @@ -109,23 +104,10 @@ namespace fc::markets::storage {
/** SignedStorageAsk used in V1.0.1 */
struct SignedStorageAskV1_0_1 : public SignedStorageAsk {
SignedStorageAskV1_0_1() = default;
explicit SignedStorageAskV1_0_1(StorageAsk ask) {
this->ask = std::move(ask);
}
SignedStorageAskV1_0_1(StorageAsk ask, Signature signature) {
this->ask = std::move(ask);
this->signature = std::move(signature);
}

outcome::result<Bytes> getDigest() const override {
return codec::cbor::encode(*this);
return codec::cbor::encode(StorageAskV1_0_1{this->ask});
};

private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const SignedStorageAskV1_0_1 &);
friend CborDecodeStream &operator>>(CborDecodeStream &,
SignedStorageAskV1_0_1 &);
};

inline CBOR2_ENCODE(SignedStorageAskV1_0_1) {
Expand All @@ -151,14 +133,8 @@ namespace fc::markets::storage {
}

outcome::result<Bytes> getDigest() const override {
return codec::cbor::encode(*this);
return codec::cbor::encode(StorageAskV1_1_0{this->ask});
};

private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const SignedStorageAskV1_1_0 &);
friend CborDecodeStream &operator>>(CborDecodeStream &,
SignedStorageAskV1_1_0 &);
};

inline CBOR2_ENCODE(SignedStorageAskV1_1_0) {
Expand Down
67 changes: 9 additions & 58 deletions core/markets/storage/deal_protocol.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,12 +152,7 @@ namespace fc::markets::storage {
DealId deal_id;
};

struct MinerDealV1_0_1 : public MinerDeal {
private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const MinerDealV1_0_1 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, MinerDealV1_0_1 &);
};
struct MinerDealV1_0_1 : public MinerDeal {};

inline CBOR2_ENCODE(MinerDealV1_0_1) {
s << v.client_deal_proposal << v.proposal_cid << v.add_funds_cid
Expand Down Expand Up @@ -185,12 +180,7 @@ namespace fc::markets::storage {
return s;
}

struct MinerDealV1_1_0 : public MinerDeal {
private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const MinerDealV1_1_0 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, MinerDealV1_1_0 &);
};
struct MinerDealV1_1_0 : public MinerDeal {};

inline CBOR2_ENCODE(MinerDealV1_1_0) {
return s << v.client_deal_proposal << v.proposal_cid << v.add_funds_cid
Expand Down Expand Up @@ -268,12 +258,7 @@ namespace fc::markets::storage {
bool is_fast_retrieval = false;
};

struct ProposalV1_0_1 : public Proposal {
private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const ProposalV1_0_1 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, ProposalV1_0_1 &);
};
struct ProposalV1_0_1 : public Proposal {};

inline CBOR2_ENCODE(ProposalV1_0_1) {
return s << v.deal_proposal << DataRefV1_0_1{v.piece}
Expand All @@ -288,12 +273,7 @@ namespace fc::markets::storage {
return s;
}

struct ProposalV1_1_0 : public Proposal {
private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const ProposalV1_1_0 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, ProposalV1_1_0 &);
};
struct ProposalV1_1_0 : public Proposal {};

inline CBOR2_ENCODE(ProposalV1_1_0) {
auto m{CborEncodeStream::map()};
Expand Down Expand Up @@ -327,30 +307,11 @@ namespace fc::markets::storage {
boost::optional<CID> publish_message;
};

struct ResponseV1_0_1 : public Response {
private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const ResponseV1_0_1 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, ResponseV1_0_1 &);
};
struct ResponseV1_0_1 : public Response {};

inline CBOR2_ENCODE(ResponseV1_0_1) {
return s << v.state << v.message << v.proposal << v.publish_message;
}
inline CBOR2_DECODE(ResponseV1_0_1) {
s >> v.state;
s >> v.message;
s >> v.proposal;
s >> v.publish_message;
return s;
}
CBOR_TUPLE(ResponseV1_0_1, state, message, proposal, publish_message)

struct ResponseV1_1_0 : public Response {
private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const ResponseV1_1_0 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, ResponseV1_1_0 &);
};
struct ResponseV1_1_0 : public Response {};

inline CBOR2_ENCODE(ResponseV1_1_0) {
auto m{CborEncodeStream::map()};
Expand Down Expand Up @@ -390,13 +351,8 @@ namespace fc::markets::storage {
}

outcome::result<Bytes> getDigest() const override {
return codec::cbor::encode(*this);
return codec::cbor::encode(ResponseV1_0_1{this->response});
};

private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const SignedResponseV1_0_1 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, SignedResponseV1_0_1 &);
};

inline CBOR2_ENCODE(SignedResponseV1_0_1) {
Expand All @@ -421,13 +377,8 @@ namespace fc::markets::storage {
}

outcome::result<Bytes> getDigest() const override {
return codec::cbor::encode(*this);
return codec::cbor::encode(ResponseV1_1_0{this->response});
};

private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const SignedResponseV1_1_0 &);
friend CborDecodeStream &operator>>(CborDecodeStream &, SignedResponseV1_1_0 &);
};

inline CBOR2_ENCODE(SignedResponseV1_1_0) {
Expand Down
4 changes: 0 additions & 4 deletions core/markets/storage/protocol/CMakeLists.txt

This file was deleted.

18 changes: 9 additions & 9 deletions core/markets/storage/provider/impl/stored_ask.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,14 @@ namespace fc::markets::storage::provider {
OUTCOME_TRY(chain_head, api_->ChainHead());
ChainEpoch timestamp = chain_head->height();
ChainEpoch expiry = chain_head->height() + kDefaultDuration;
StorageAsk default_ask{.price = kDefaultPrice,
.verified_price = kDefaultPrice,
.min_piece_size = kDefaultMinPieceSize,
.max_piece_size = kDefaultMaxPieceSize,
.miner = actor_,
.timestamp = timestamp,
.expiry = expiry,
.seq_no = 0};
StorageAskV1_1_0 default_ask{{.price = kDefaultPrice,
.verified_price = kDefaultPrice,
.min_piece_size = kDefaultMinPieceSize,
.max_piece_size = kDefaultMaxPieceSize,
.miner = actor_,
.timestamp = timestamp,
.expiry = expiry,
.seq_no = 0}};
OUTCOME_TRY(signed_ask, signAsk(default_ask, *chain_head));
return std::move(signed_ask);
}
Expand All @@ -93,7 +93,7 @@ namespace fc::markets::storage::provider {
SignedStorageAskV1_1_0 signed_ask(ask);
OUTCOME_TRY(digest, signed_ask.getDigest());
OUTCOME_TRYA(signed_ask.signature, api_->WalletSign(key_address, digest));
return signed_ask;
return std::move(signed_ask);
}

} // namespace fc::markets::storage::provider
Expand Down
16 changes: 2 additions & 14 deletions core/markets/storage/status_protocol.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,14 +154,8 @@ namespace fc::markets::storage {
}

outcome::result<Bytes> getDigest() const override {
return codec::cbor::encode(*this);
return codec::cbor::encode(ProviderDealStateV1_1_0{this->state});
};

private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const DealStatusResponseV1_0_1 &);
friend CborDecodeStream &operator>>(CborDecodeStream &,
DealStatusResponseV1_0_1 &);
};

inline CBOR2_ENCODE(DealStatusResponseV1_0_1) {
Expand All @@ -187,14 +181,8 @@ namespace fc::markets::storage {
}

outcome::result<Bytes> getDigest() const override {
return codec::cbor::encode(*this);
return codec::cbor::encode(ProviderDealStateV1_1_0{this->state});
};

private:
friend CborEncodeStream &operator<<(CborEncodeStream &,
const DealStatusResponseV1_1_0 &);
friend CborDecodeStream &operator>>(CborDecodeStream &,
DealStatusResponseV1_1_0 &);
};

inline CBOR2_ENCODE(DealStatusResponseV1_1_0) {
Expand Down
6 changes: 1 addition & 5 deletions test/core/markets/storage/provider/stored_ask_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

#include <gtest/gtest.h>
#include "crypto/bls/impl/bls_provider_impl.hpp"
#include "crypto/secp256k1/impl/secp256k1_sha256_provider_impl.hpp"
#include "storage/in_memory/in_memory_storage.hpp"
#include "testutil/literals.hpp"
#include "testutil/outcome.hpp"
Expand All @@ -20,17 +19,13 @@ namespace fc::markets::storage::provider {
using fc::crypto::bls::BlsProvider;
using fc::crypto::bls::BlsProviderImpl;
using fc::crypto::bls::KeyPair;
using fc::crypto::secp256k1::Secp256k1ProviderDefault;
using fc::crypto::secp256k1::Secp256k1Sha256ProviderImpl;
using fc::storage::InMemoryStorage;
using BlsSignature = fc::crypto::bls::Signature;

class StoredAskTest : public ::testing::Test {
public:
std::shared_ptr<BlsProvider> bls_provider_ =
std::make_shared<BlsProviderImpl>();
std::shared_ptr<Secp256k1ProviderDefault> secp256k1_provider_ =
std::make_shared<Secp256k1Sha256ProviderImpl>();

std::shared_ptr<Datastore> datastore = std::make_shared<InMemoryStorage>();

Expand Down Expand Up @@ -110,6 +105,7 @@ namespace fc::markets::storage::provider {
EXPECT_OUTCOME_TRUE(ask, stored_ask.getAsk(actor_address));

EXPECT_EQ(ask.ask.price, kDefaultPrice);
EXPECT_EQ(ask.ask.verified_price, kDefaultPrice);
EXPECT_EQ(ask.ask.min_piece_size, kDefaultMinPieceSize);
EXPECT_EQ(ask.ask.max_piece_size, kDefaultMaxPieceSize);
EXPECT_EQ(ask.ask.miner, actor_address);
Expand Down

0 comments on commit b9ad8cf

Please sign in to comment.