2016-01-18 15:33:29 +00:00
|
|
|
// Copyright (c) 2011-2016 The Cryptonote developers
|
2015-09-18 11:55:31 +00:00
|
|
|
// Distributed under the MIT/X11 software license, see the accompanying
|
|
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
2015-08-19 17:06:24 +00:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
#include <utility>
|
|
|
|
|
|
|
|
namespace CryptoNote {
|
|
|
|
|
|
|
|
class IFusionManager {
|
|
|
|
public:
|
|
|
|
struct EstimateResult {
|
2015-08-27 18:55:14 +00:00
|
|
|
size_t fusionReadyCount;
|
2015-08-19 17:06:24 +00:00
|
|
|
size_t totalOutputCount;
|
|
|
|
};
|
|
|
|
|
|
|
|
virtual ~IFusionManager() {}
|
|
|
|
|
|
|
|
virtual size_t createFusionTransaction(uint64_t threshold, uint64_t mixin) = 0;
|
|
|
|
virtual bool isFusionTransaction(size_t transactionId) const = 0;
|
|
|
|
virtual EstimateResult estimate(uint64_t threshold) const = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|