"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
var __exportStar = (this && this.__exportStar) || function(m, exports) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSigMessage = exports.ApiLite = exports.utilCrypto = exports.util = exports.CONSTS = exports.getApiCreatorRx = exports.getApiCreator = exports.isApi = exports.WsProvider = exports.ApiRx = exports.ApiPromise = void 0;
const EQNext = __importStar(require("@equilab/api/eq-next/types"));
const EQ = __importStar(require("@equilab/api/equilibrium/types"));
const equilibrium_1 = require("@equilab/api/equilibrium");
const eq_next_1 = require("@equilab/api/eq-next");
const genshiro_1 = require("@equilab/api/genshiro");
const util = __importStar(require("@polkadot/util"));
exports.util = util;
const utilCrypto = __importStar(require("@polkadot/util-crypto"));
exports.utilCrypto = utilCrypto;
const CONSTS = __importStar(require("./constants"));
exports.CONSTS = CONSTS;
const class_1 = __importDefault(require("./lite/class"));
exports.ApiLite = class_1.default;
var api_1 = require("@polkadot/api");
Object.defineProperty(exports, "ApiPromise", { enumerable: true, get: function () { return api_1.ApiPromise; } });
Object.defineProperty(exports, "ApiRx", { enumerable: true, get: function () { return api_1.ApiRx; } });
var rpc_provider_1 = require("@polkadot/rpc-provider");
Object.defineProperty(exports, "WsProvider", { enumerable: true, get: function () { return rpc_provider_1.WsProvider; } });
const isApi = (api, apiType) => {
    return api?._type === apiType;
};
exports.isApi = isApi;
const getApiCreator = (apiType) => {
    if (apiType === "Eq") {
        return equilibrium_1.createApi;
    }
    else if (apiType === "EqNext") {
        return eq_next_1.createApi;
    }
    else {
        return genshiro_1.createApi;
    }
};
exports.getApiCreator = getApiCreator;
const getApiCreatorRx = (apiType) => {
    if (apiType === "Eq") {
        return equilibrium_1.createApiRx;
    }
    else if (apiType === "EqNext") {
        return eq_next_1.createApiRx;
    }
    else {
        return genshiro_1.createApiRx;
    }
};
exports.getApiCreatorRx = getApiCreatorRx;
__exportStar(require("./util"), exports);
const getSigMessage = (test, address, stamenent = false) => {
    const prfx = test ? CONSTS.TEST_PREFIX : CONSTS.PREFIX;
    const stmt = CONSTS.STATEMENT.toString();
    let message = prfx + util.u8aToHex(utilCrypto.decodeAddress(address), -1, false);
    if (stamenent) {
        message += stmt;
    }
    return message;
};
exports.getSigMessage = getSigMessage;
