Bitcoin full node and query server

May 22, 2019

View in context in the libbitcoin Slack #general mirror.

N
narodnik06:07
#include <bitcoin/system.hpp>

const std::string master_chain_code = "tpubD6NzVbkrYhZ4WmUsVtDM62qG5zPPbAApWqc9nsqT6sYAcDvs1MtVSHG8otsqy45G33nmaBHe4TWNpuQZk3sLX19rfRsYoKmirQuWbuL6TED";

std::string get_address(uint32_t user_id, uint32_t chain_index)
{
    bc::system::wallet::hd_public master(master_chain_code,
        bc::system::wallet::hd_public::testnet);

    BITCOIN_ASSERT(bc::system::wallet::hd_public::testnet == 70617039);
    BITCOIN_ASSERT(master);

    auto user_chain = master.derive_public(user_id);
    auto key_chain = user_chain.derive_public(chain_index);

    // This line asserts
    BITCOIN_ASSERT(user_chain);
    BITCOIN_ASSERT(key_chain);

    bc::system::wallet::ec_public public_key(key_chain.point());

    auto payaddr = public_key.to_payment_address(0x6f);
    return payaddr.encoded();
}

int main()
{
    get_address(0, 110);
    return 0;
}