swtc-factory
Version:
swtc base lib factory
83 lines • 2.56 kB
JavaScript
;
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