Sha256: 6d5fc6c96043d8c8cc9877ec27311f1003d7d1db6effd737d900b08d35526255

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var interface_1 = require("./interface");
var chain_id_1 = require("../extensions/chain-id");
var param_1 = require("../conversions/param");
var hashing_1 = require("./hashing");
var address_keys_seed_1 = require("./address-keys-seed");
var axlsign_1 = __importDefault(require("../libs/axlsign"));
exports.verifyAddress = function (addr, optional) {
    var chainId = optional ? optional.chainId : undefined;
    try {
        var addressBytes = param_1._fromIn(addr);
        if (addressBytes[0] != 1 || (chainId ? addressBytes[1] != chain_id_1.ChaidId.toNumber(chainId) : false))
            return false;
        var key = addressBytes.slice(0, 22);
        var check = addressBytes.slice(22, 26);
        var keyHash = hashing_1._hashChain(key).slice(0, 4);
        for (var i = 0; i < 4; i++) {
            if (check[i] != keyHash[i])
                return false;
        }
        if (optional && optional.publicKey) {
            var a = address_keys_seed_1.address({ publicKey: optional.publicKey }, chainId);
            if (addressBytes.length !== a.length)
                return false;
            for (var i = 0; i < a.length; i++) {
                if (a[i] !== addressBytes[i])
                    return false;
            }
        }
    }
    catch (ex) {
        return false;
    }
    return true;
};
exports.verifySignature = function (publicKey, bytes, signature) {
    try {
        return axlsign_1.default.verify(param_1._fromIn(publicKey), param_1._fromIn(bytes), param_1._fromIn(signature));
    }
    catch (error) {
        return false;
    }
};
exports.verifyPublicKey = function (publicKey) { return param_1._fromIn(publicKey).length === interface_1.PUBLIC_KEY_LENGTH; };
//# sourceMappingURL=verification.js.map

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
waves_lib-0.1.0 js/node_modules/@waves/ts-lib-crypto/crypto/verification.js