@rarible/types
Version:
`@rarible/types` is a TypeScript library that provides type definitions and interfaces for the Rarible ecosystem. This package is designed to facilitate seamless integration with Rarible's APIs and services, ensuring type safety and improved developer exp
38 lines (37 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.randomTezosContractAddress = exports.toTezosContractAddressSafe = exports.toTezosContractAddress = exports.tezosContractAddressValidator = exports.isTezosContractAddress = void 0;
const address_js_1 = require("../../common/address.js");
const common_js_1 = require("../../common/common.js");
const domain_js_1 = require("../../union/enum/domain.js");
// Tezos contract addresses usually start with KT1 and are Base58 encoded.
const tezosContractAddressRegExp = new RegExp(/^KT1[1-9A-HJ-NP-Za-km-z]{33}/);
function isTezosContractAddress(address) {
return tezosContractAddressRegExp.test(address);
}
exports.isTezosContractAddress = isTezosContractAddress;
exports.tezosContractAddressValidator = (0, common_js_1.createLayer1fulValidator)(domain_js_1.BlockchainLayer1Enum.TEZOS, isTezosContractAddress);
function toTezosContractAddress(address) {
const safe = toTezosContractAddressSafe(address);
if (!safe)
throw new address_js_1.InvalidAddressError(domain_js_1.BlockchainLayer1Enum.TEZOS, address);
return safe;
}
exports.toTezosContractAddress = toTezosContractAddress;
function toTezosContractAddressSafe(address) {
if (isTezosContractAddress(address))
return address;
return undefined;
}
exports.toTezosContractAddressSafe = toTezosContractAddressSafe;
function randomTezosContractAddress() {
const base58Chars = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
let address = "KT1";
for (let i = 0; i < 33; i++) {
// The length of the rest of the address should be 33 characters
const randomIndex = Math.floor(Math.random() * base58Chars.length);
address += base58Chars[randomIndex];
}
return toTezosContractAddress(address);
}
exports.randomTezosContractAddress = randomTezosContractAddress;