/*
This file is part of cpp-ethereum.
cpp-ethereum is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
cpp-ethereum is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with cpp-ethereum. If not, see .
*/
/** @file CommonEth.h
* @author Gav Wood
* @date 2014
*
* Ethereum-specific data structures & algorithms.
*/
#pragma once
#include
#include
#include
namespace dev
{
namespace eth
{
/// Current protocol version.
extern const unsigned c_protocolVersion;
/// Current database version.
extern const unsigned c_databaseVersion;
/// User-friendly string representation of the amount _b in wei.
std::string formatBalance(bigint const& _b);
/// Get information concerning the currency denominations.
std::vector> const& units();
/// The log bloom's size (512 bit).
using LogBloom = h512;
template inline u256 exp10()
{
return exp10() * u256(10);
}
template <> inline u256 exp10<0>()
{
return u256(1);
}
// The various denominations; here for ease of use where needed within code.
static const u256 ether = exp10<18>();
static const u256 finney = exp10<15>();
static const u256 szabo = exp10<12>();
static const u256 wei = exp10<0>();
}
}