aboutsummaryrefslogtreecommitdiff
path: root/src/consensus/merkle.h
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2015-11-17 17:35:40 +0100
committerPieter Wuille <pieter.wuille@gmail.com>2015-11-27 15:31:01 +0100
commitee60e5625bf8a11c8e5509b9cea8b6465056c448 (patch)
tree4369d0745993de5ee1b347d67bd37f6284b753a3 /src/consensus/merkle.h
parent93e0514fd083971dcef1fea8d107895244270f4c (diff)
downloadbitcoin-ee60e5625bf8a11c8e5509b9cea8b6465056c448.tar.xz
Add merkle.{h,cpp}, generic merkle root/branch algorithm
Diffstat (limited to 'src/consensus/merkle.h')
-rw-r--r--src/consensus/merkle.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/consensus/merkle.h b/src/consensus/merkle.h
new file mode 100644
index 0000000000..7fd13d3e43
--- /dev/null
+++ b/src/consensus/merkle.h
@@ -0,0 +1,17 @@
+// Copyright (c) 2015 The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef BITCOIN_MERKLE
+#define BITCOIN_MERKLE
+
+#include <stdint.h>
+#include <vector>
+
+#include "uint256.h"
+
+uint256 ComputeMerkleRoot(const std::vector<uint256>& leaves, bool* mutated = NULL);
+std::vector<uint256> ComputeMerkleBranch(const std::vector<uint256>& leaves, uint32_t position);
+uint256 ComputeMerkleRootFromBranch(const uint256& leaf, const std::vector<uint256>& branch, uint32_t position);
+
+#endif