@glitterprotocol/glitter-sdk
Version:
The JavaScript SDK for Glitter
110 lines • 3.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ValConsAddress = exports.ValPubKey = exports.ValAddress = exports.AccPubKey = exports.AccAddress = void 0;
var bech32_1 = require("bech32");
function checkPrefixAndLength(prefix, data, length) {
try {
var vals = bech32_1.bech32.decode(data);
return vals.prefix === prefix && data.length == length;
}
catch (e) {
return false;
}
}
var AccAddress;
(function (AccAddress) {
/**
* Checks if a string is a valid glitter account address.
*
* @param data string to check
*/
function validate(data) {
// 44 for normal account and 64 for contract account
return (checkPrefixAndLength('glitter', data, 44) ||
checkPrefixAndLength('glitter', data, 64));
}
AccAddress.validate = validate;
/**
* Converts a validator address into an account address
*
* @param address validator address
*/
function fromValAddress(address) {
var vals = bech32_1.bech32.decode(address);
return bech32_1.bech32.encode('glitter', vals.words);
}
AccAddress.fromValAddress = fromValAddress;
})(AccAddress = exports.AccAddress || (exports.AccAddress = {}));
var AccPubKey;
(function (AccPubKey) {
/**
* Checks if a string is a glitter account's public key
* @param data string to check
*/
function validate(data) {
return checkPrefixAndLength('glitterpub', data, 47);
}
AccPubKey.validate = validate;
/**
* Converts a glitter validator pubkey to an account pubkey.
* @param address validator pubkey to convert
*/
function fromAccAddress(address) {
var vals = bech32_1.bech32.decode(address);
return bech32_1.bech32.encode('glitterpub', vals.words);
}
AccPubKey.fromAccAddress = fromAccAddress;
})(AccPubKey = exports.AccPubKey || (exports.AccPubKey = {}));
var ValAddress;
(function (ValAddress) {
/**
* Checks if a string is a glitter validator address.
*
* @param data string to check
*/
function validate(data) {
return checkPrefixAndLength('glittervaloper', data, 51);
}
ValAddress.validate = validate;
/**
* Converts a glitter account address to a validator address.
* @param address account address to convert
*/
function fromAccAddress(address) {
var vals = bech32_1.bech32.decode(address);
return bech32_1.bech32.encode('glittervaloper', vals.words);
}
ValAddress.fromAccAddress = fromAccAddress;
})(ValAddress = exports.ValAddress || (exports.ValAddress = {}));
var ValPubKey;
(function (ValPubKey) {
/**
* Checks if a string is a glitter validator pubkey
* @param data string to check
*/
function validate(data) {
return checkPrefixAndLength('glittervaloperpub', data, 54);
}
ValPubKey.validate = validate;
/**
* Converts a glitter validator operator address to a validator pubkey.
* @param valAddress account pubkey
*/
function fromValAddress(valAddress) {
var vals = bech32_1.bech32.decode(valAddress);
return bech32_1.bech32.encode('glittervaloperpub', vals.words);
}
ValPubKey.fromValAddress = fromValAddress;
})(ValPubKey = exports.ValPubKey || (exports.ValPubKey = {}));
var ValConsAddress;
(function (ValConsAddress) {
/**
* Checks if a string is a glitter validator consensus address
* @param data string to check
*/
function validate(data) {
return checkPrefixAndLength('glittervalcons', data, 51);
}
ValConsAddress.validate = validate;
})(ValConsAddress = exports.ValConsAddress || (exports.ValConsAddress = {}));
//# sourceMappingURL=bech32.js.map