UNPKG

swtc-factory

Version:
83 lines 2.56 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); // this is only for jcc compatibility use const swtc_chains_1 = __importDefault(require("swtc-chains")); const swtc_keypairs_1 = __importDefault(require("swtc-keypairs")); const KEYPAIRS = {}; swtc_chains_1.default.forEach((chain) => { KEYPAIRS[chain.code.toLowerCase()] = swtc_keypairs_1.default(chain.code.toLowerCase()); KEYPAIRS[chain.currency.toLowerCase()] = swtc_keypairs_1.default(chain.currency.toLowerCase()); }); class KeyPairs { constructor(token = "swt") { this._token = token.toLowerCase(); if (KEYPAIRS[this._token] === undefined) { throw new Error(`config of ${token.toLowerCase()} is empty`); } } /** * get corresponding Keypair for its _token */ keyPairs() { return KeyPairs.KEYPAIRS[this._token]; } /** * generate random bytes and encode it to secret * @returns {string} */ generateSeed(options) { return this.keyPairs().generateSeed(options); } /** * derive keypair from secret * @param {string} secret * @returns {{privateKey: string, publicKey: *}} */ deriveKeyPair(secret) { return this.keyPairs().deriveKeyPair(secret); } /** * derive wallet address from publickey * @param {string} publicKey * @returns {string} */ deriveAddress(publicKey) { return this.keyPairs().deriveAddress(publicKey); } /** * check is address is valid * @param address * @returns {boolean} */ checkAddress(address) { return this.keyPairs().checkAddress(address); } /** * convert the given address to byte array * @param address * @returns byte array */ convertAddressToBytes(address) { if (this.checkAddress(address)) { return this.keyPairs().convertAddressToBytes(address); } else { throw new Error("convert address to bytes in error"); } } /* * convert the byte array to wallet address */ convertBytesToAddress(bytes) { if (typeof bytes !== "object") { throw new Error("convert bytes to address in error"); } return this.keyPairs().convertBytesToAddress(bytes); } } exports.KeyPairs = KeyPairs; KeyPairs.KEYPAIRS = KEYPAIRS; //# sourceMappingURL=keypairs.js.map