Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Multisig implementation #200

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 3 additions & 16 deletions include/BlockchainExplorerData.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,11 @@ struct TransactionOutputToKeyDetails {
Crypto::PublicKey txOutKey;
};

struct TransactionOutputMultisignatureDetails {
std::vector<Crypto::PublicKey> keys;
uint32_t requiredSignatures;
};

struct TransactionOutputDetails {
uint64_t amount;
uint32_t globalIndex;

boost::variant<
TransactionOutputToKeyDetails,
TransactionOutputMultisignatureDetails> output;
boost::variant<TransactionOutputToKeyDetails> output;
};

struct TransactionOutputReferenceDetails {
Expand Down Expand Up @@ -79,8 +72,7 @@ struct TransactionInputDetails {

boost::variant<
TransactionInputGenerateDetails,
TransactionInputToKeyDetails,
TransactionInputMultisignatureDetails> input;
TransactionInputToKeyDetails> input;
};

struct TransactionExtraDetails {
Expand All @@ -106,12 +98,7 @@ struct KeyInputDetails {
std::vector<TransactionOutputReferenceDetails> outputs;
};

struct MultisignatureInputDetails {
MultisignatureInput input;
TransactionOutputReferenceDetails output;
};

typedef boost::variant<BaseInputDetails, KeyInputDetails, MultisignatureInputDetails> transactionInputDetails2;
typedef boost::variant<BaseInputDetails, KeyInputDetails> transactionInputDetails2;

struct TransactionExtraDetails2 {
std::vector<size_t> padding;
Expand Down
15 changes: 2 additions & 13 deletions include/CryptoNote.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,13 @@ struct KeyInput {
Crypto::KeyImage keyImage;
};

struct MultisignatureInput {
uint64_t amount;
uint8_t signatureCount;
uint32_t outputIndex;
};

struct KeyOutput {
Crypto::PublicKey key;
};

struct MultisignatureOutput {
std::vector<Crypto::PublicKey> keys;
uint8_t requiredSignatureCount;
};

typedef boost::variant<BaseInput, KeyInput, MultisignatureInput> TransactionInput;
typedef boost::variant<BaseInput, KeyInput> TransactionInput;

typedef boost::variant<KeyOutput, MultisignatureOutput> TransactionOutputTarget;
typedef boost::variant<KeyOutput> TransactionOutputTarget;

struct TransactionOutput {
uint64_t amount;
Expand Down
1 change: 0 additions & 1 deletion include/INode.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,6 @@ class INode {
virtual void getTransactionOutsGlobalIndices(const Crypto::Hash& transactionHash, std::vector<uint32_t>& outsGlobalIndices, const Callback& callback) = 0;
virtual void queryBlocks(std::vector<Crypto::Hash>&& knownBlockIds, uint64_t timestamp, std::vector<BlockShortEntry>& newBlocks, uint32_t& startHeight, const Callback& callback) = 0;
virtual void getPoolSymmetricDifference(std::vector<Crypto::Hash>&& knownPoolTxIds, Crypto::Hash knownBlockId, bool& isBcActual, std::vector<std::unique_ptr<ITransactionReader>>& newTxs, std::vector<Crypto::Hash>& deletedTxIds, const Callback& callback) = 0;
virtual void getMultisignatureOutputByGlobalIndex(uint64_t amount, uint32_t gindex, MultisignatureOutput& out, const Callback& callback) = 0;
virtual void getBlocks(const std::vector<uint32_t>& blockHeights, std::vector<std::vector<BlockDetails>>& blocks, const Callback& callback) = 0;
virtual void getBlocks(const std::vector<Crypto::Hash>& blockHashes, std::vector<BlockDetails>& blocks, const Callback& callback) = 0;
virtual void getBlocks(uint64_t timestampBegin, uint64_t timestampEnd, uint32_t blocksNumberLimit, std::vector<BlockDetails>& blocks, uint32_t& blocksNumberWithinTimestamps, const Callback& callback) = 0;
Expand Down
11 changes: 2 additions & 9 deletions include/ITransaction.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ namespace CryptoNote {

namespace TransactionTypes {

enum class InputType : uint8_t { Invalid, Key, Multisignature, Generating };
enum class OutputType : uint8_t { Invalid, Key, Multisignature };
enum class InputType : uint8_t { Invalid, Key, Generating };
enum class OutputType : uint8_t { Invalid, Key };

struct GlobalOutput {
Crypto::PublicKey targetKey;
Expand Down Expand Up @@ -75,15 +75,13 @@ class ITransactionReader {
virtual uint64_t getInputTotalAmount() const = 0;
virtual TransactionTypes::InputType getInputType(size_t index) const = 0;
virtual void getInput(size_t index, KeyInput& input) const = 0;
virtual void getInput(size_t index, MultisignatureInput& input) const = 0;
virtual std::vector<TransactionInput> getInputs() const = 0;

// outputs
virtual size_t getOutputCount() const = 0;
virtual uint64_t getOutputTotalAmount() const = 0;
virtual TransactionTypes::OutputType getOutputType(size_t index) const = 0;
virtual void getOutput(size_t index, KeyOutput& output, uint64_t& amount) const = 0;
virtual void getOutput(size_t index, MultisignatureOutput& output, uint64_t& amount) const = 0;

// signatures
virtual size_t getRequiredSignaturesCount(size_t inputIndex) const = 0;
Expand Down Expand Up @@ -118,21 +116,16 @@ class ITransactionWriter {

// Inputs/Outputs
virtual size_t addInput(const KeyInput& input) = 0;
virtual size_t addInput(const MultisignatureInput& input) = 0;
virtual size_t addInput(const AccountKeys& senderKeys, const TransactionTypes::InputKeyInfo& info, KeyPair& ephKeys) = 0;

virtual size_t addOutput(uint64_t amount, const AccountPublicAddress& to) = 0;
virtual size_t addOutput(uint64_t amount, const std::vector<AccountPublicAddress>& to, uint32_t requiredSignatures) = 0;
virtual size_t addOutput(uint64_t amount, const KeyOutput& out) = 0;
virtual size_t addOutput(uint64_t amount, const MultisignatureOutput& out) = 0;

// transaction info
virtual void setTransactionSecretKey(const Crypto::SecretKey& key) = 0;

// signing
virtual void signInputKey(size_t input, const TransactionTypes::InputKeyInfo& info, const KeyPair& ephKeys) = 0;
virtual void signInputMultisignature(size_t input, const Crypto::PublicKey& sourceTransactionKey, size_t outputIndex, const AccountKeys& accountKeys) = 0;
virtual void signInputMultisignature(size_t input, const KeyPair& ephemeralKeys) = 0;
};

class ITransaction :
Expand Down
11 changes: 0 additions & 11 deletions src/BlockchainExplorer/BlockchainExplorerDataBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -314,17 +314,6 @@ bool BlockchainExplorerDataBuilder::fillTransactionDetails(const Transaction& tr
txInToKeyDetails.outputs.push_back(d);
}
txInDetails = txInToKeyDetails;
} else if (txIn.type() == typeid(MultisignatureInput)) {
MultisignatureInputDetails txInMultisigDetails;
const MultisignatureInput& txInMultisig = boost::get<MultisignatureInput>(txIn);
txInMultisigDetails.input = txInMultisig;
std::pair<Crypto::Hash, size_t> outputReference;
if (!m_core.getMultisigOutputReference(txInMultisig, outputReference)) {
return false;
}
txInMultisigDetails.output.number = outputReference.second;
txInMultisigDetails.output.transactionHash = outputReference.first;
txInDetails = txInMultisigDetails;
} else {
return false;
}
Expand Down
Loading