lwk_bindings 0.14.0

Liquid Wallet Kit - Bindings for other languages
Documentation
#include <cassert>
#include "lwk.hpp"

int main() {
    auto network = lwk::Network::testnet();
    std::cout << "Network: " << network->to_string() << std::endl;
    assert(network->to_string() == "LiquidTestnet");

    auto mnemonic = lwk::Mnemonic::init("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about");
    std::cout << "Mnemonic: " << mnemonic->to_string() << std::endl;
    assert(mnemonic->to_string() == "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about");

    auto electrum = network->default_electrum_client();
    electrum->ping();

    auto signer = lwk::Signer::init(mnemonic, network);
    auto desc = signer->wpkh_slip77_descriptor();
    std::cout << "Descriptor: " << desc->to_string() << std::endl;
    assert(desc->to_string() == "ct(slip77(9c8e4f05c7711a98c838be228bcb84924d4570ca53f35fa1c793e58841d47023),elwpkh([73c5da0a/84'/1'/0']tpubDC8msFGeGuwnKG9Upg7DM2b4DaRqg3CUZa5g8v2SRQ6K4NSkxUgd7HsL2XVWbVm39yBA4LAxysQAm397zwQSQoQgewGiYZqrA9DsP4zbQ1M/<0;1>/*))#2e4n992d");

    auto wollet = lwk::Wollet::init(network, desc, std::nullopt);

    auto update = electrum->full_scan(wollet);
    if (update) {
        wollet->apply_update(update);
    }

    auto txs = wollet->transactions();
    assert(txs.size() >= 164);
    std::cout << "Number of transactions: " << txs.size() << std::endl;

    for(auto& tx : txs) {
        std::cout << "Transaction ID: " << tx->txid()->to_string() << std::endl;
    }

    return 0;
}