1#ifndef SECP256K1_COINS_ETH_SIGNING_HPP
2#define SECP256K1_COINS_ETH_SIGNING_HPP
35std::array<std::uint8_t, 32>
eip191_hash(
const std::uint8_t* msg, std::size_t msg_len);
42inline std::uint64_t
eip155_v(
int recid, std::uint64_t chain_id) {
43 return 35 + 2 * chain_id +
static_cast<std::uint64_t
>(recid);
54 return static_cast<int>(v - 27);
56 return static_cast<int>((v - 35) & 1);
62 if (v <= 28)
return 0;
69 std::array<std::uint8_t, 32>
r;
70 std::array<std::uint8_t, 32>
s;
84 std::uint64_t chain_id = 0);
91std::pair<std::array<std::uint8_t, 20>,
bool>
92ecrecover(
const std::array<std::uint8_t, 32>& msg_hash,
93 const std::array<std::uint8_t, 32>& r,
94 const std::array<std::uint8_t, 32>& s,
98std::pair<std::array<std::uint8_t, 20>,
bool>
99ecrecover(
const std::array<std::uint8_t, 32>& msg_hash,
107 const std::array<std::uint8_t, 20>& expected_addr);
std::uint64_t eip155_v(int recid, std::uint64_t chain_id)
bool eth_personal_verify(const std::uint8_t *msg, std::size_t msg_len, const EthSignature &sig, const std::array< std::uint8_t, 20 > &expected_addr)
EthSignature eth_sign_hash(const std::array< std::uint8_t, 32 > &hash, const fast::Scalar &private_key, std::uint64_t chain_id=0)
std::pair< std::array< std::uint8_t, 20 >, bool > ecrecover(const std::array< std::uint8_t, 32 > &msg_hash, const std::array< std::uint8_t, 32 > &r, const std::array< std::uint8_t, 32 > &s, std::uint64_t v)
EthSignature eth_personal_sign(const std::uint8_t *msg, std::size_t msg_len, const fast::Scalar &private_key)
std::array< std::uint8_t, 32 > eip191_hash(const std::uint8_t *msg, std::size_t msg_len)
std::uint64_t eip155_chain_id(std::uint64_t v)
int eip155_recid(std::uint64_t v)
std::array< std::uint8_t, 32 > s
std::array< std::uint8_t, 32 > r