/* 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 CommonJS.h * @authors: * Gav Wood * Marek Kotewicz * @date 2014 */ #pragma once #include #include #include #include "Common.h" // devcrypto namespace dev { /// Strictly convert unprefixed hex string string to Address (h160). @returns empty address if (_a.size != 40). Address toAddress(std::string const& _a); /// Leniently convert string to Public (h512). Accepts integers, "0x" prefixing, non-exact length. inline Public jsToPublic(std::string const& _s) { return jsToFixed(_s); } /// Leniently convert string to Secret (h256). Accepts integers, "0x" prefixing, non-exact length. inline Secret jsToSecret(std::string const& _s) { return jsToFixed(_s); } /// Leniently convert string to Address (h160). Accepts integers, "0x" prefixing, non-exact length. inline Address jsToAddress(std::string const& _s) { return jsToFixed(_s); } /// Convert u256 into user-readable string. Returns int/hex value of 64 bits int, hex of 160 bits FixedHash. As a fallback try to handle input as h256. std::string prettyU256(u256 _n, bool _abridged = true); } // ethcore namespace dev { namespace eth { struct TransactionSkeleton { bool creation = false; Address from; Address to; u256 value; bytes data; u256 gas; u256 gasPrice; }; /// Convert to a block number, a bit like jsToInt, except that it correctly recognises "pending" and "latest". BlockNumber jsToBlockNumber(std::string const& _js); } }