eth_pairings_cpp 0.1.1

EIP1962 reference implementation in C++
Documentation
#include "api.h"
#include "wrapper.h"

int run(const char *i, uint32_t i_len, char *o, uint32_t *o_len, char *err, uint32_t *char_len) {
    std::vector<std::uint8_t> input;
    input.resize(i_len);
    std::copy(i, i + i_len, input.begin());
    auto result = run(input);
    if (auto answer = std::get_if<0>(&result))
    {
        std::copy(answer->begin(), answer->end(), o);
        *o_len = answer->size();
        return true;
    } else if (auto error_descr = std::get_if<1>(&result)) {
        auto str_len = error_descr->size();
        auto c_str = error_descr->c_str();
        std::copy(c_str, c_str + str_len + 1, err);
        *char_len = error_descr->size();
        return false;
    }

    return false;
}

int meter_gas(const char *i, uint32_t i_len, uint64_t *gas) {
    *gas = UINT64_MAX;
    return true;
}